Re: [PATCH v6 4/6] builtin/tag: add --format argument for tag -v
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 18, 2017, 18:25 UTC
- Message-ID
- <xmqqh94wb4y0.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <xmqqmvepb4oj.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 25 quoted lines
> santiago@nyu.edu writes:
>
>> @@ -428,9 +443,12 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
>> if (filter.merge_commit)
>> die(_("--merged and --no-merged option are only allowed with -l"));
>> if (cmdmode == 'd')
>> - return for_each_tag_name(argv, delete_tag);
>> - if (cmdmode == 'v')
>> - return for_each_tag_name(argv, verify_tag);
>> + return for_each_tag_name(argv, delete_tag, NULL);
>> + if (cmdmode == 'v') {
>> + if (format)
>> + verify_ref_format(format);
>> + return for_each_tag_name(argv, verify_tag, format);
>> + }
>
> This triggers:
>
> builtin/tag.c: In function 'cmd_tag':
> builtin/tag.c:451:3: error: passing argument 3 of
> 'for_each_tag_name' discards 'const' qualifier from pointer target type [-Werror]
> return for_each_tag_name(argv, verify_tag, format);
>
> Either for-each-tag-name's new parameter needs to be typed
> correctly, or the type of the "format" variable needs to be updated.Squashing the following into this commit solves this issue with the former approach. The lines it touches are all from 4/6 and I view all of it as general improvement, including type correctness and code formatting.
diff --git a/builtin/tag.c b/builtin/tag.c index f81273a85a..fbb85ba3dc 100644 --- a/builtin/tag.c +++ b/builtin/tag.c @@ -66,10 +66,10 @@ static int list_tags(struct ref_filter *filter, struct ref_sorting *sorting, con } typedef int (*each_tag_name_fn)(const char *name, const char *ref, - const unsigned char *sha1, void *cb_data); + const unsigned char *sha1, const void *cb_data); static int for_each_tag_name(const char **argv, each_tag_name_fn fn, - void *cb_data) + const void *cb_data) { const char **p; char ref[PATH_MAX]; @@ -95,7 +95,7 @@ static int for_each_tag_name(const char **argv, each_tag_name_fn fn, } static int delete_tag(const char *name, const char *ref, - const unsigned char *sha1, void *cb_data) + const unsigned char *sha1, const void *cb_data) { if (delete_ref(ref, sha1, 0)) return 1; @@ -104,10 +104,10 @@ static int delete_tag(const char *name, const char *ref, } static int verify_tag(const char *name, const char *ref, - const unsigned char *sha1, void *cb_data) + const unsigned char *sha1, const void *cb_data) { int flags; - char *fmt_pretty = cb_data; + const char *fmt_pretty = cb_data; flags = GPG_VERIFY_VERBOSE; if (fmt_pretty)