Subject: Re: [PATCH] strbuf: use designated initializers in STRBUF_INIT

From: Junio C Hamano <[email-masked]>
Date: Mon, 10 Jul 2017 13:38:26 -0700

Johannes Sixt <[email-masked]> writes:

> It's a pity, though, that you do not suggest something even more
> useful, such as C++14.

I cannot tell if this part is tongue-in-cheek (especially the "++"),
so I will ignore it to avoid wasting time.

>> Subject: [PATCH] strbuf: use designated initializers in STRBUF_INIT
>
>> -#define STRBUF_INIT  { 0, 0, strbuf_slopbuf }
>> +#define STRBUF_INIT  { .alloc = 0, .len = 0, .buf = strbuf_slopbuf }
>
> While this may serve as a test balloon, changing STRBUF_INIT, or any
> of those _INIT macros, is actually the least interesting. The
> interesting instances are initializations for which we do *not* have a
> macro.

I am not sure what negative impact you think the macro-ness would
have to the validity of the result from this test balloon.  An old
compiler that does not understand designated initializer syntax
would fail to compile both the same way, no?

	struct strbuf buf0 = STRBUF_INIT;
	struct strbuf buf1 = { .alloc = 0, .len = 0, .buf = strbuf_slopbuf };