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

Re: [PATCH] string-list.h: Add STRING_LIST_INIT macro and make use of it.

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 29, 2010, 05:43 UTC
Message-ID
<7v4ogmcs1u.fsf@alter.siamese.dyndns.org>
In-Reply-To
<AANLkTim14fh1RRSoYFK5uIqi8OrkB2zHahInDpO80gws@mail.gmail.com>
Alex Riesen <raa.lkml@gmail.com> writes:
Show 15 quoted lines
>> 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.

Previous: Alex RiesenNext: Peter Kjellerstedt
Message 9 of 21 in “string-list.h: Add STRING_LIST_INIT macro and make use of it.”
  1. string-list.h: Add STRING_LIST_INIT macro and make use of it.Thiago Farina, Jun 26, 2010
  2. Sverre RabbelierJun 26, 2010
  3. Jonathan NiederJun 26, 2010
  4. Thiago FarinaJun 26, 2010
  5. string-list.h: Add STRING_LIST_INIT macro and make use of it.Thiago Farina, Jun 26, 2010
  6. string-list.h: Add STRING_LIST_INIT macro and make use of it.Thiago Farina, Jun 26, 2010
  7. Junio C HamanoJun 27, 2010
  8. Alex RiesenJun 28, 2010
  9. Junio C HamanoJun 29, 2010
  10. Peter KjellerstedtJun 29, 2010
  11. Alex RiesenJun 29, 2010
  12. string_list: Add STRING_LIST_INIT macro and make use of it.Thiago Farina, Jul 2, 2010
  13. Jonathan NiederJul 2, 2010
  14. Thiago FarinaJul 2, 2010
  15. Jonathan NiederJul 2, 2010
  16. string_list: Add STRING_LIST_INIT macro and make use of it.Thiago Farina, Jul 4, 2010
  17. Jonathan NiederJul 7, 2010
  18. Junio C HamanoJul 7, 2010
  19. Thiago FarinaJul 10, 2010
  20. Jonathan NiederJul 10, 2010
  21. Thiago FarinaAug 19, 2010

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.