git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: cb/pedantic-build-for-developers, POSIX-but-not-C99 and -Wno-pedantic-ms-format

From
René Scharfe <l.s.r@web.de>
Date
Sep 21, 2021, 10:30 UTC
Message-ID
<b0eba1c6-5468-df31-db6f-701bcd24adff@web.de>
In-Reply-To
<CAPUEspiBP+4Ac4O5ZRTK0N+8PhHeewksrhL=x8TcswrvnS1JOw@mail.gmail.com>
Am 21.09.21 um 12:10 schrieb Carlo Arenas:
Show 7 quoted lines
>>     -       strbuf_addf(&fmt, "%%s%%s%%s-%%0%1$lud.%%0%1$lud-%%s-%%s-%%s",
>>     -                   (unsigned long)tmp.len);
>>     +       strbuf_addf(&fmt, "%%s%%s%%s-%%0%lud.%%0%lud-%%s-%%s-%%s",
>>     +                   (unsigned long)tmp.len, (unsigned long)tmp.len);
>
> The C standard version seems simpler to me, so I would say this was a
> good outcome overall.
I get hypnotized by all those percent signs. %-O
Show 5 quoted lines
>> I may be wrong, but I believe that construct is widely portable, we
>> don't use it in the main source, but in the po/ files (so anything that
>> uses git + gettext tests for this already):
>>
>>     git grep -P '%\d+\$' -- po

I wasn't aware of that extension. Seems useful for translations, when reordering elements is required or convenient to match the sentence structure of a different language.

The lack of warnings about the use of that extension in po/ means translated formats are not checked by the compiler at all, right? According to the gettext documentation [2] msgfmt takes care of that when building the translation files, though.

Show 6 quoted lines
>
> It is not part of ANY C standard, so it will just print gibberish in
> systems that don't carry this extension.
>
> FWIW is not supported in Windows, which probably explains why they
> don't carry the po files.

Right, Microsoft doesn't mention it in its printf format documentation [1]. The gettext documentation [3] claims that such platforms get replacement functions automatically via libintl.h.

René

[1] https://docs.microsoft.com/en-us/cpp/c-runtime-library/format-specification-syntax-printf-and-wprintf-functions?view=msvc-160 [2] https://www.gnu.org/software/gettext/manual/gettext.html#c_002dformat-Flag [3| https://www.gnu.org/software/gettext/manual/gettext.html#c_002dformat

Previous: Carlo ArenasNext: Carlo Arenas
Message 6 of 18 in “What's cooking in git.git (Sep 2021, #06; Mon, 20)”
  1. Junio C HamanoSep 21, 2021
  2. Junio C HamanoSep 21, 2021
  3. Taylor BlauSep 21, 2021
  4. cb/pedantic-build-for-developers, POSIX-but-not-C99 and -Wno-pedantic-ms-formatÆvar Arnfjörð Bjarmason, Sep 21, 2021
  5. Carlo ArenasSep 21, 2021
  6. René ScharfeSep 21, 2021
  7. Carlo ArenasSep 21, 2021
  8. Junio C HamanoSep 22, 2021
  9. René ScharfeSep 22, 2021
  10. Junio C HamanoSep 22, 2021
  11. Randall S. BeckerSep 22, 2021
  12. Randall S. BeckerSep 22, 2021
  13. Randall S. BeckerSep 22, 2021
  14. Ævar Arnfjörð BjarmasonSep 21, 2021
  15. Junio C HamanoSep 23, 2021
  16. Ævar Arnfjörð BjarmasonSep 23, 2021
  17. Jeff KingSep 23, 2021
  18. ns/batched-fsync (was Re: What's cooking in git.git (Sep 2021, #06; Mon, 20))Ævar Arnfjörð Bjarmason, Sep 22, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.