git/list[1] front-page[2] threads[3] people[4] search[5] about
 

coding style: #ifdef blocks and real C blocks

From
Tay Ray Chuan <rctay89@gmail.com>
Date
Mar 1, 2009, 08:52 UTC
Message-ID
<be6fef0d0903010052t50551f3w74352b69afdee620@mail.gmail.com>
Hi,

I couldn't find any mention of #ifdef usage nor any example of how I'm thinking of using #ifdef, so I'm posing this here.

Right now here's what I have on my local branch:
---
#ifdef USE_CURL_MULTI
	slot = get_active_multi_slot();
#else
	slot = get_active_slot();
#endif
	slot->callback_func = process_response;
	slot->callback_data = request;
	request->slot = slot;
---

I want to implement an option that's stored in the variable "persistent_connection", which basically makes the code behave as if USE_CURL_MULTI isn't defined. (This would make git open/close less connections throughout the lifespan of its execution, which would remove/minimize the number of credential prompting if authentication is required, among other advantages.)

Here's what I thought of:
---
#ifdef USE_CURL_MULTI
	if (!persistent_connection)
		slot = get_active_multi_slot();
	else
		slot = get_active_slot();
#else
	slot = get_active_slot();
#endif
---
I thought of shortening this further to
---
#ifdef USE_CURL_MULTI
if (!persistent_connection)
	slot = get_active_multi_slot();
else
#else
	slot = get_active_slot();
#endif
	slot->callback_func = process_response;
	slot->callback_data = request;
	request->slot = slot;
---
What would you suggest?
-- 
Cheers,
Ray Chuan
Next: Junio C Hamano
Message 1 of 4 in “coding style: #ifdef blocks and real C blocks”
  1. Tay Ray ChuanMar 1, 2009
  2. Junio C HamanoMar 1, 2009
  3. Tay Ray ChuanMar 1, 2009
  4. Tay Ray ChuanMar 1, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.