From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: Re: [PATCH 4/6] *.h: add a few missing __attribute__((format))
Date: Mon, 12 Jul 2021 01:05:53 +0200 [thread overview]
Message-ID: <877dhw4exj.fsf@evledraar.gmail.com> (raw)
In-Reply-To: <patch-4.6-3bf8637c16a-20210710T084445Z-avarab@gmail.com>
On Sat, Jul 10 2021, Ævar Arnfjörð Bjarmason wrote:
So this:
> [...]
> For strbuf_addftime() let's add a strftime() format checker. Our
> function understands the non-portable %z and %Z, see
> c3fbf81a853 (strbuf: let strbuf_addftime handle %z and %Z itself,
> 2017-06-15).
>
> That might be an issue in theory, but in practice we have existing
> codepath that supplies a fixed string to strbuf_addftime(). We're
> unlikely to run into the "%z" and "%Z" case at all, since it's used by
> date.c and passed via e.g. "git log --date=<format>".
> [...]
> /**
> @@ -425,6 +426,7 @@ void strbuf_vaddf(struct strbuf *sb, const char *fmt, va_list ap);
> * `suppress_tz_name`, when set, expands %Z internally to the empty
> * string rather than passing it to `strftime`.
> */
> +__attribute__((format (strftime, 2, 0)))
> void strbuf_addftime(struct strbuf *sb, const char *fmt,
> const struct tm *tm, int tz_offset,
> int suppress_tz_name);
Fails with compat/mingw.[ch] doing:
[...]
compat/mingw.c:#undef strftime
compat/mingw.c-size_t mingw_strftime(char *s, size_t max,
compat/mingw.c- const char *format, const struct tm *tm)
[...]
compat/mingw.h:#define strftime mingw_strftime
[...]
What's a good macro idiom to dig oneself out of that hole? The only
similar thing I could find was NORETURN in git-compat-util.h being
defined differently on various platforms, and then things like:
+#if !defined(__MINGW32__) && !defined(_MSC_VER)
__attribute__((format (strftime, 2, 0)))
+#endif
Which seems to work, and may be the simplest workaround...
next prev parent reply other threads:[~2021-07-11 23:19 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-10 8:47 [PATCH 0/6] add missing __attribute__((format)) Ævar Arnfjörð Bjarmason
2021-07-10 8:47 ` [PATCH 1/6] *.c static functions: don't forward-declare __attribute__ Ævar Arnfjörð Bjarmason
2021-07-10 8:47 ` [PATCH 2/6] sequencer.c: move static function to avoid forward decl Ævar Arnfjörð Bjarmason
2021-07-10 8:47 ` [PATCH 3/6] *.c static functions: add missing __attribute__((format)) Ævar Arnfjörð Bjarmason
2021-07-10 8:47 ` [PATCH 4/6] *.h: add a few " Ævar Arnfjörð Bjarmason
2021-07-11 23:05 ` Ævar Arnfjörð Bjarmason [this message]
2021-07-12 20:09 ` Jeff King
2021-07-10 8:47 ` [PATCH 5/6] bugreport.c: tweak cmd_bugreport() to use __attribute__((printf)) Ævar Arnfjörð Bjarmason
2021-07-12 19:39 ` Junio C Hamano
2021-07-10 8:47 ` [PATCH 6/6] git-compat-util.h: add __attribute__((printf)) to git_*printf* Ævar Arnfjörð Bjarmason
2021-07-12 20:13 ` Jeff King
2021-07-12 20:26 ` Randall S. Becker
2021-07-12 21:45 ` Jeff King
2021-07-12 21:58 ` Randall S. Becker
2021-07-12 20:14 ` [PATCH 0/6] add missing __attribute__((format)) Jeff King
2021-07-13 8:05 ` [PATCH v2 " Ævar Arnfjörð Bjarmason
2021-07-13 8:05 ` [PATCH v2 1/6] *.c static functions: don't forward-declare __attribute__ Ævar Arnfjörð Bjarmason
2021-07-13 8:05 ` [PATCH v2 2/6] sequencer.c: move static function to avoid forward decl Ævar Arnfjörð Bjarmason
2021-07-13 8:05 ` [PATCH v2 3/6] *.c static functions: add missing __attribute__((format)) Ævar Arnfjörð Bjarmason
2021-07-13 8:05 ` [PATCH v2 4/6] *.h: add a few " Ævar Arnfjörð Bjarmason
2021-07-13 8:05 ` [PATCH v2 5/6] advice.h: add missing __attribute__((format)) & fix usage Ævar Arnfjörð Bjarmason
2021-07-13 8:05 ` [PATCH v2 6/6] strbuf.h: add a comment about "missing" strftime() checking Ævar Arnfjörð Bjarmason
2021-07-13 21:15 ` Jeff King
2021-07-13 21:17 ` [PATCH v2 0/6] add missing __attribute__((format)) Jeff King
2021-07-13 22:29 ` Junio C Hamano
2021-07-13 23:05 ` Ævar Arnfjörð Bjarmason
2021-07-14 0:15 ` [PATCH v3 0/5] " Ævar Arnfjörð Bjarmason
2021-07-14 0:15 ` [PATCH v3 1/5] *.c static functions: don't forward-declare __attribute__ Ævar Arnfjörð Bjarmason
2021-07-14 0:15 ` [PATCH v3 2/5] sequencer.c: move static function to avoid forward decl Ævar Arnfjörð Bjarmason
2021-07-14 0:15 ` [PATCH v3 3/5] *.c static functions: add missing __attribute__((format)) Ævar Arnfjörð Bjarmason
2021-07-14 0:15 ` [PATCH v3 4/5] *.h: add a few " Ævar Arnfjörð Bjarmason
2021-07-14 0:15 ` [PATCH v3 5/5] advice.h: add missing __attribute__((format)) & fix usage Ævar Arnfjörð Bjarmason
2021-07-14 16:07 ` [PATCH v3 0/5] add missing __attribute__((format)) Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877dhw4exj.fsf@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.