Re: [PATCH 3/6] shortlog: use designated initializer for "struct shortlog"
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Sep 27, 2021, 10:52 UTC
- Message-ID
- <87lf3i1e7k.fsf@evledraar.gmail.com>
- In-Reply-To
- <94842a94-d168-2b61-4a44-0059ecbe1b36@gmail.com>
On Mon, Sep 27 2021, Phillip Wood wrote:
Show 39 quoted lines
> Hi Ævar
>
> On 27/09/2021 01:53, Ævar Arnfjörð Bjarmason wrote:
>> Change code added in 64093fc06a (blame,shortlog: don't make local
>> option variables static, 2016-06-13) to use a designated initializer
>> via a typical *_INIT macro pattern.
>> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
>> ---
>> builtin/shortlog.c | 2 +-
>> shortlog.h | 4 ++++
>> 2 files changed, 5 insertions(+), 1 deletion(-)
>> diff --git a/builtin/shortlog.c b/builtin/shortlog.c
>> index 3e7ab1ca821..fa1f76cc51e 100644
>> --- a/builtin/shortlog.c
>> +++ b/builtin/shortlog.c
>> @@ -342,7 +342,7 @@ void shortlog_init(struct shortlog *log)
>> int cmd_shortlog(int argc, const char **argv, const char
>> *prefix)
>> {
>> - struct shortlog log = { STRING_LIST_INIT_NODUP };
>> + struct shortlog log = SHORTLOG_INIT;
>> struct rev_info rev;
>> int nongit = !startup_info->have_repository;
>> diff --git a/shortlog.h b/shortlog.h
>> index 3f7e9aabcae..47892d6d604 100644
>> --- a/shortlog.h
>> +++ b/shortlog.h
>> @@ -28,6 +28,10 @@ struct shortlog {
>> FILE *file;
>> };
>> +#define SHORTLOG_INIT { \
>> + .list = STRING_LIST_INIT_NODUP, \
>> +}
>> +
>> void shortlog_init(struct shortlog *log);
>
> looking at this wouldn't it be better follow the pattern in the first
> patch in this series and replace shortlog_init() with a designated
> initializer?I've ejected this patch from a WIP re-roll, I don't know what I was thinking when I included it.
It's "correct", but one of those cases where we can't easily get rid of the not-a-macro init() function, so having a *_INIT macro that doesn't actually do the initialization for both users is just confusing.
Worse, that "nodup" is actually a like, the shortlog_init() function sets it to "dup", that issue pre-dated by change here, but I shouldn't have carried it forward.
Sorry!