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

[PATCH v2 0/5] CodingGUidelines: C99 updates

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 10, 2022, 20:37 UTC
Message-ID
<20221010203800.2154698-1-gitster@pobox.com>
In-Reply-To
<cover-0.5-00000000000-20221007T092505Z-avarab@gmail.com>

As this is otherwise clearly good series, I got sick of waiting for a trivial update, so here is what I did to update them myself.

Updates are in patches 3 and 4. We promised to revisit the issue of allowing "for (int i = 0; ..." in November this year, so we are merely "proposing" to go ahead and allow it with this patch, and will merge only after gaining consensus. The wording has been redone to avoid sounding like it is a fait accompli.

Patch 4 has been updated to avoid starting the latter clause with a capitalized word in two independent clauses joined with a semicolon.

Ævar Arnfjörð Bjarmason (5):
  CodingGuidelines: update for C99
  CodingGuidelines: mention dynamic C99 initializer elements
  CodingGuidelines: allow declaring variables in for loops
  CodingGuidelines: mention C99 features we can't use
  CodingGuidelines: recommend against unportable C99 struct syntax
 Documentation/CodingGuidelines | 34 ++++++++++++++++++++++++----------
 revision.c                     |  7 -------
 2 files changed, 24 insertions(+), 17 deletions(-)
Range-diff against v1:
1:  3e3dd9cbd5 = 1:  3e3dd9cbd5 CodingGuidelines: update for C99
2:  fb6c58ef52 = 2:  fb6c58ef52 CodingGuidelines: mention dynamic C99 initializer elements
3:  719e235f9f ! 3:  f3237c88f8 CodingGuidelines: allow declaring variables in for loops
    @@ Commit message
         cb2607759e2 (merge-ort: store more specific conflict information,
         2022-06-18) released with v2.38.0.
     
    -    As November 2022 is within the window of this upcoming release let's
    -    update the guideline to allow this, and revert the recent
    -    6983f4e3b20 (test-parse-options.c: don't use for loop initial
    -    declaration, 2022-09-05).
    -
    -    It's better to update the guidelines than to have back & forth churn
    -    like that, we clearly don't have portability issues related to this
    -    syntax.
    +    As November 2022 is within the window of this upcoming release,
    +    let's update the guideline to allow this.  We can have the promised
    +    "revisit" discussion while this patch cooks, and drop it if it turns
    +    out that it is still premature, which is not expected to happen at
    +    this moment.
     
         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
         Signed-off-by: Junio C Hamano <gitster@pobox.com>
    @@ revision.c: static inline int want_ancestry(const struct rev_info *revs);
      	for (const char *p = name; *p && *p != '\n'; p++)
      		fputc(*p, out);
      	fputc('\n', out);
    -
    - ## t/helper/test-parse-options.c ##
    -@@ t/helper/test-parse-options.c: int cmd__parse_options(int argc, const char **argv)
    - 
    - static void print_args(int argc, const char **argv)
    - {
    --	int i;
    --	for (i = 0; i < argc; i++)
    -+	for (int i = 0; i < argc; i++)
    - 		printf("arg %02d: %s\n", i, argv[i]);
    - }
    - 
4:  3d1edfd825 ! 4:  9d2479220d CodingGuidelines: mention C99 features we can't use
    @@ Documentation/CodingGuidelines: For C programs:
     +
     +   . %z and %zu as a printf() argument for a size_t (the %z being for
     +     the POSIX-specific ssize_t). Instead you should use
    -+     printf("%"PRIuMAX, (uintmax_t)v); These days the MSVC version we
    ++     printf("%"PRIuMAX, (uintmax_t)v).  These days the MSVC version we
     +     rely on supports %z, but the C library used by MinGW does not.
     +
       - Variables have to be declared at the beginning of the block, before
5:  139b0f8cfd ! 5:  ef22b1756a CodingGuidelines: recommend against unportable C99 struct syntax
    @@ Commit message
     
      ## Documentation/CodingGuidelines ##
     @@ Documentation/CodingGuidelines: For C programs:
    -      printf("%"PRIuMAX, (uintmax_t)v); These days the MSVC version we
    +      printf("%"PRIuMAX, (uintmax_t)v).  These days the MSVC version we
           rely on supports %z, but the C library used by MinGW does not.
      
     +   . Shorthand like ".a.b = *c" in struct assignments is known to trip
-- 
2.38.0-167-gf9a88ca9e9
Previous: Junio C HamanoNext: Junio C Hamano
Message 12 of 22 in “CodingGuidelines: various C99 updates”
  1. 0/5 CodingGuidelines: various C99 updatesÆvar Arnfjörð Bjarmason, Oct 7, 2022
  2. 1/5 CodingGuidelines: update for C99Ævar Arnfjörð Bjarmason, Oct 7, 2022
  3. Junio C HamanoOct 7, 2022
  4. 2/5 CodingGuidelines: mention dynamic C99 initializer elementsÆvar Arnfjörð Bjarmason, Oct 7, 2022
  5. 3/5 CodingGuidelines: allow declaring variables in for loopsÆvar Arnfjörð Bjarmason, Oct 7, 2022
  6. Junio C HamanoOct 7, 2022
  7. 4/5 CodingGuidelines: mention C99 features we can't useÆvar Arnfjörð Bjarmason, Oct 7, 2022
  8. Junio C HamanoOct 7, 2022
  9. 5/5 CodingGuidelines: recommend against unportable C99 struct syntaxÆvar Arnfjörð Bjarmason, Oct 7, 2022
  10. Junio C HamanoOct 7, 2022
  11. Junio C HamanoOct 7, 2022
  12. 0/5 CodingGUidelines: C99 updatesJunio C Hamano, Oct 10, 2022
  13. 1/5 CodingGuidelines: update for C99Junio C Hamano, Oct 10, 2022
  14. 2/5 CodingGuidelines: mention dynamic C99 initializer elementsJunio C Hamano, Oct 10, 2022
  15. 3/5 CodingGuidelines: allow declaring variables in for loopsJunio C Hamano, Oct 10, 2022
  16. 4/5 CodingGuidelines: mention C99 features we can't useJunio C Hamano, Oct 10, 2022
  17. 5/5 CodingGuidelines: recommend against unportable C99 struct syntaxJunio C Hamano, Oct 10, 2022
  18. Jeff KingOct 11, 2022
  19. Junio C HamanoOct 11, 2022
  20. Jeff KingOct 11, 2022
  21. Ævar Arnfjörð BjarmasonOct 11, 2022
  22. Junio C HamanoOct 11, 2022

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.