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

Re: [RFC PATCH 4/6] sequencer.c: avoid empty statements at top level

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 9, 2018, 21:34 UTC
Message-ID
<xmqqo9fgayb6.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20180708144342.11922-5-dev+git@drbeat.li>
Beat Bolli <dev+git@drbeat.li> writes:
> The marco GIT_PATH_FUNC expands to a complete statement including the
> semicolon. Remove two extra trailing semicolons.

Wait a bit. The observation in the log message and the implementation of GIT_PATH_FUNC() do not match.

        #define GIT_PATH_FUNC(func, filename) \
                const char *func(void) \
                { \
                        static char *ret; \
                        if (!ret) \
                                ret = git_pathdup(filename); \
                        return ret; \
                }

The code generated does "include semicolon" but that is not why the caller should place semicolon after the closing parens. Perhaps replace "including the semicolon." with something else, like ", and adding a semicolon after it not only is unnecessary but is wrong." or soemthing like that?

It is a bit unfortunate that we need to live with a slight uglyness of the resulting source code, unlike e.g. define_commit_slab() that can (and must) end with a semicolon, which gives us a more natural look. But that is a separate issue.

Show 25 quoted lines
>
> Signed-off-by: Beat Bolli <dev+git@drbeat.li>
> ---
>  sequencer.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sequencer.c b/sequencer.c
> index 5354d4d51e..66e7073995 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -62,12 +62,12 @@ static GIT_PATH_FUNC(rebase_path_done, "rebase-merge/done")
>   * The file to keep track of how many commands were already processed (e.g.
>   * for the prompt).
>   */
> -static GIT_PATH_FUNC(rebase_path_msgnum, "rebase-merge/msgnum");
> +static GIT_PATH_FUNC(rebase_path_msgnum, "rebase-merge/msgnum")
>  /*
>   * The file to keep track of how many commands are to be processed in total
>   * (e.g. for the prompt).
>   */
> -static GIT_PATH_FUNC(rebase_path_msgtotal, "rebase-merge/end");
> +static GIT_PATH_FUNC(rebase_path_msgtotal, "rebase-merge/end")
>  /*
>   * The commit message that is planned to be used for any changes that
>   * need to be committed following a user interaction.
Previous: ig@drbeat.liNext: Beat Bolli
Message 6 of 39 in “Compile cleanly in pedantic mode”
  1. 0/6 Compile cleanly in pedantic modeBeat Bolli, Jul 8, 2018
  2. 4/6 sequencer.c: avoid empty statements at top levelBeat Bolli, Jul 8, 2018
  3. Eric SunshineJul 8, 2018
  4. Philip OakleyJul 8, 2018
  5. ig@drbeat.liJul 9, 2018
  6. Junio C HamanoJul 9, 2018
  7. Beat BolliJul 9, 2018
  8. 2/6 refs/refs-internal.h: avoid forward declaration of an enumBeat Bolli, Jul 8, 2018
  9. Jeff KingJul 9, 2018
  10. Beat BolliJul 9, 2018
  11. Jeff KingJul 10, 2018
  12. 3/6 convert.c: replace "\e" escapes with "\033".Beat Bolli, Jul 8, 2018
  13. 6/6 utf8.c: avoid char overflowBeat Bolli, Jul 8, 2018
  14. Johannes SchindelinJul 9, 2018
  15. Beat BolliJul 9, 2018
  16. Beat BolliJul 9, 2018
  17. Junio C HamanoJul 9, 2018
  18. Beat BolliJul 9, 2018
  19. Junio C HamanoJul 9, 2018
  20. Johannes SchindelinJul 9, 2018
  21. 1/6 connect.h: avoid forward declaration of an enumBeat Bolli, Jul 8, 2018
  22. 5/6 string-list.c: avoid conversion from void * to function pointerBeat Bolli, Jul 8, 2018
  23. Johannes SchindelinJul 9, 2018
  24. Junio C HamanoJul 9, 2018
  25. 0/6 Compile cleanly in pedantic modeBeat Bolli, Jul 9, 2018
  26. Beat BolliJul 9, 2018
  27. Junio C HamanoJul 9, 2018
  28. Beat BolliJul 9, 2018
  29. Beat BolliJul 10, 2018
  30. Junio C HamanoJul 11, 2018
  31. Johannes SchindelinJul 12, 2018
  32. Junio C HamanoJul 12, 2018
  33. 1/6 connect.h: avoid forward declaration of an enumBeat Bolli, Jul 9, 2018
  34. 5/6 string-list.c: avoid conversion from void * to function pointerBeat Bolli, Jul 9, 2018
  35. 3/6 convert.c: replace "\e" escapes with "\033".Beat Bolli, Jul 9, 2018
  36. 2/6 refs/refs-internal.h: avoid forward declaration of an enumBeat Bolli, Jul 9, 2018
  37. 6/6 utf8.c: avoid char overflowBeat Bolli, Jul 9, 2018
  38. 4/6 sequencer.c: avoid empty statements at top levelBeat Bolli, Jul 9, 2018
  39. Junio C HamanoJul 9, 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.