Re: coding style: #ifdef blocks and real C blocks
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:46:18
Tay Ray Chuan [off-list ref] writes:
#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;
How about doing something like this:
#ifdef USE_CURL_MULTI
#define active_slot_get get_active_multi_slot
#else
#define active_slot_get get_active_slot
#endif
so that the code itself would not have to have any #ifdef?
slot = active_slot_get()
slot->callback_func = process_response;
slot->callback_data = request;
request->slot = slot;
#ifdef USE_CURL_MULTI if (!persistent_connection) slot = get_active_multi_slot(); else slot = get_active_slot(); #else slot = get_active_slot(); #endif
Similarly, with something like this:
#ifdef USE_CURL_MULTI
slot active_persistent_slot() {
return persistent_connection ? get_active_slot() : get_active_multi_slot();
}
#else
slot active_persistent_slot() {
return get_active_slot();
}
#endif
the call site can be #ifdef free, no?