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

Re: [PATCH 4/8] gpg-interface: introduce an abstraction for multiple gpg formats

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 6, 2018, 17:24 UTC
Message-ID
<xmqqa7r4mg45.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<CAN0heSrXpLCDRjnZC80QXBG27gd6m5reBn1hfNd_KXxnPVkA2g@mail.gmail.com>
Martin Ågren <martin.agren@gmail.com> writes:
Show 14 quoted lines
>> +enum gpgformats { PGP_FMT };
>> +struct gpg_format_data gpg_formats[] = {
>> +       { .format = "PGP", .program = "gpg",
>> +         .extra_args_verify = { "--keyid-format=long", },
>> +         .sigs = { PGP_SIGNATURE, PGP_MESSAGE, },
>> +       },
>> +};
>
> I think those trailing commas are ok now, but I'm not sure...
>
> I had the same thought about designated initializers. Those should be ok
> now, c.f. cbc0f81d96 (strbuf: use designated initializers in STRBUF_INIT,
> 2017-07-10) and a73b3680c4 (Add and use generic name->id mapping code
> for color slot parsing, 2018-05-26).

As you said, we dipped our toes in designated initializers in both struct and array, i.e. { .field = init }, { [offset] = init } last summer and we haven't got complaints from minor platforms so far.

The "comma" thing you are wondering is something else. The comma we see above is after the last element in an array's initializer (and the last element in a struct's initializer), which we have been happily using from very early days (and they are kosher ANSI C).

What we've been avoiding was the comma after the last element in the enum (in other words, if PGP_FMT had ',' after it in the above quoted addition, that would have been violation of that rule), as having such a trailing comma used to be ANSI C violation as well. I do not recall offhand if we loosened that deliberately.

4b05548f ("enums: omit trailing comma for portability", 2010-05-14), c9b6782a ("enums: omit trailing comma for portability", 2011-03-16)

Previous: Henning SchildNext: Henning Schild
Message 24 of 36 in “X509 (gpgsm) commit signing support”
  1. 0/8 X509 (gpgsm) commit signing supportHenning Schild, Jul 3, 2018
  2. 2/8 gpg-interface: make parse_gpg_output static and remove from interface headerHenning Schild, Jul 3, 2018
  3. 1/8 builtin/receive-pack: use check_signature from gpg-interfaceHenning Schild, Jul 3, 2018
  4. Junio C HamanoJul 6, 2018
  5. Junio C HamanoJul 6, 2018
  6. Henning SchildJul 9, 2018
  7. Junio C HamanoJul 9, 2018
  8. 5/8 t/t7510: check the validation of the new config gpg.formatHenning Schild, Jul 3, 2018
  9. Junio C HamanoJul 6, 2018
  10. Henning SchildJul 9, 2018
  11. 6/8 gpg-interface: do not hardcode the key string len anymoreHenning Schild, Jul 3, 2018
  12. Junio C HamanoJul 6, 2018
  13. 3/8 gpg-interface: add new config to select how to sign a commitHenning Schild, Jul 3, 2018
  14. brian m. carlsonJul 6, 2018
  15. Henning SchildJul 6, 2018
  16. Junio C HamanoJul 6, 2018
  17. 7/8 gpg-interface: introduce new signature format "X509" using gpgsmHenning Schild, Jul 3, 2018
  18. brian m. carlsonJul 6, 2018
  19. Henning SchildJul 6, 2018
  20. Junio C HamanoJul 6, 2018
  21. 4/8 gpg-interface: introduce an abstraction for multiple gpg formatsHenning Schild, Jul 3, 2018
  22. Martin ÅgrenJul 4, 2018
  23. Henning SchildJul 5, 2018
  24. Junio C HamanoJul 6, 2018
  25. Henning SchildJul 9, 2018
  26. Eric SunshineJul 9, 2018
  27. Junio C HamanoJul 9, 2018
  28. Jeff KingJul 10, 2018
  29. Junio C HamanoJul 10, 2018
  30. Junio C HamanoJul 10, 2018
  31. Jeff KingJul 10, 2018
  32. 8/8 gpg-interface t: extend the existing GPG tests with GPGSMHenning Schild, Jul 3, 2018
  33. brian m. carlsonJul 6, 2018
  34. Henning SchildJul 6, 2018
  35. brian m. carlsonJul 6, 2018
  36. Henning SchildJul 6, 2018

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.