Re: [PATCH 3/6] shortlog: use designated initializer for "struct shortlog"
From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2021-09-27 10:54:11
On Mon, Sep 27 2021, Phillip Wood wrote:
Hi Ævar On 27/09/2021 01:53, Ævar Arnfjörð Bjarmason wrote:quoted
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 <redacted> --- 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!