Alex Riesen <raa.lkml@xxxxxxxxx> writes: >> But I wonder if this is worth it (not this "more complete", but your >> patch). We convert 16 or so instances of initialization for "no strdup" >> list, but there are about the same number of "strdup" instances still >> spelled out: >> >> $ git grep -e 'struct string_list [^ ]* = {.*' >> $ git grep -e 'struct string_list [^ ]* = {.*1' >> >> Wouldn't it be more sensible to use this instead? >> >> #define STRING_LIST_INIT(pleasedup) { NULL, 0, 0, (pleasedup) } > > This begs for using strdup(string-to-dup) in the macro argument, which > will not compile with ancient compilers which don't allow code in an > initializer. Err, one of us must be confused. I was suggesting to rewrite things like these, found in builtin/remote.c (add and rm): struct string_list track = { NULL, 0, 0, 0 }; struct string_list branches = { NULL, 0, 0, 1 }; like so: #define STRING_LIST_INIT(pleasedup) { NULL, 0, 0, (pleasedup) } struct string_list track = STRING_LIST_INIT(0); struct string_list branches = STRING_LIST_INIT(1); I don't see strdup in macro argument anywhere. The original patch in this thread proposed to do this instead: #define STRING_LIST_INIT { NULL, 0, 0, 0 } struct string_list track = STRING_LIST_INIT; struct string_list branches = { NULL, 0, 0, 1 }; converting about half of initializers to the macro, and leaving the other half spelled out. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html