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

[PATCH 00/10] fix bug, use existing enums

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Sep 28, 2021, 13:14 UTC
Message-ID
<cover-00.10-00000000000-20210928T130905Z-avarab@gmail.com>

I have some feature changes planned for parse-options.[ch], including ones that allow us to delete some boilerplate (and sometimes buggy) code in built-ins by having the API do heavier lifting.

In adding anything to the API I've found it hard to deal with it using its own enums inconsistently, sometimes it's an "int", sometimes it's the "enum", and having the "default" cases makes it hard to assert that you've added things to all the right places.

2-6,7-10/10 is that rather straightforward conversion. 1,7/10 also have fixes to existing bugs that happened due to mixing up the enum fields in one way or the other.

Ævar Arnfjörð Bjarmason (10):
  parse-options.h: move PARSE_OPT_SHELL_EVAL between enums
  parse-options.[ch]: consistently use "enum parse_opt_flags"
  parse-options.[ch]: consistently use "enum parse_opt_result"
  parse-options.c: use exhaustive "case" arms for "enum parse_opt_type"
  parse-options.h: make the "flags" in "struct option" an enum
  parse-options.c: move optname() earlier in the file
  commit-graph: stop using optname()
  parse-options.[ch]: make opt{bug,name}() "static"
  parse-options tests: test optname() output
  parse-options: change OPT_{SHORT,UNSET} to an enum
 builtin/blame.c          |   3 +
 builtin/commit-graph.c   |   3 +-
 builtin/shortlog.c       |   3 +
 parse-options.c          | 116 ++++++++++++++++++++++++++-------------
 parse-options.h          |  26 ++++-----
 t/t0040-parse-options.sh |  42 +++++++++++++-
 6 files changed, 138 insertions(+), 55 deletions(-)
-- 
2.33.0.1340.ge9f77250f2b
Next: Ævar Arnfjörð Bjarmason
Message 1 of 61 in “fix bug, use existing enums”
  1. 00/10 fix bug, use existing enumsÆvar Arnfjörð Bjarmason, Sep 28, 2021
  2. 01/10 parse-options.h: move PARSE_OPT_SHELL_EVAL between enumsÆvar Arnfjörð Bjarmason, Sep 28, 2021
  3. 02/10 parse-options.[ch]: consistently use "enum parse_opt_flags"Ævar Arnfjörð Bjarmason, Sep 28, 2021
  4. Junio C HamanoSep 29, 2021
  5. Ævar Arnfjörð BjarmasonSep 29, 2021
  6. Junio C HamanoSep 29, 2021
  7. Junio C HamanoSep 29, 2021
  8. 03/10 parse-options.[ch]: consistently use "enum parse_opt_result"Ævar Arnfjörð Bjarmason, Sep 28, 2021
  9. Junio C HamanoSep 29, 2021
  10. 04/10 parse-options.c: use exhaustive "case" arms for "enum parse_opt_type"Ævar Arnfjörð Bjarmason, Sep 28, 2021
  11. Junio C HamanoSep 29, 2021
  12. Ævar Arnfjörð BjarmasonSep 29, 2021
  13. Junio C HamanoSep 29, 2021
  14. 05/10 parse-options.h: make the "flags" in "struct option" an enumÆvar Arnfjörð Bjarmason, Sep 28, 2021
  15. Junio C HamanoSep 29, 2021
  16. 07/10 commit-graph: stop using optname()Ævar Arnfjörð Bjarmason, Sep 28, 2021
  17. Taylor BlauSep 29, 2021
  18. Ævar Arnfjörð BjarmasonOct 1, 2021
  19. 06/10 parse-options.c: move optname() earlier in the fileÆvar Arnfjörð Bjarmason, Sep 28, 2021
  20. 08/10 parse-options.[ch]: make opt{bug,name}() "static"Ævar Arnfjörð Bjarmason, Sep 28, 2021
  21. 09/10 parse-options tests: test optname() outputÆvar Arnfjörð Bjarmason, Sep 28, 2021
  22. 10/10 parse-options: change OPT_{SHORT,UNSET} to an enumÆvar Arnfjörð Bjarmason, Sep 28, 2021
  23. Junio C HamanoSep 29, 2021
  24. 00/11 fix bug, use existing enumsÆvar Arnfjörð Bjarmason, Oct 1, 2021
  25. 01/11 parse-options.h: move PARSE_OPT_SHELL_EVAL between enumsÆvar Arnfjörð Bjarmason, Oct 1, 2021
  26. 02/11 parse-options.[ch]: consistently use "enum parse_opt_flags"Ævar Arnfjörð Bjarmason, Oct 1, 2021
  27. Junio C HamanoOct 1, 2021
  28. 03/11 parse-options.[ch]: consistently use "enum parse_opt_result"Ævar Arnfjörð Bjarmason, Oct 1, 2021
  29. 04/11 parse-options.c: use exhaustive "case" arms for "enum parse_opt_result"Ævar Arnfjörð Bjarmason, Oct 1, 2021
  30. 05/11 parse-options.c: use exhaustive "case" arms for "enum parse_opt_type"Ævar Arnfjörð Bjarmason, Oct 1, 2021
  31. 06/11 parse-options.h: make the "flags" in "struct option" an enumÆvar Arnfjörð Bjarmason, Oct 1, 2021
  32. 07/11 parse-options.c: move optname() earlier in the fileÆvar Arnfjörð Bjarmason, Oct 1, 2021
  33. 08/11 commit-graph: stop using optname()Ævar Arnfjörð Bjarmason, Oct 1, 2021
  34. René ScharfeOct 1, 2021
  35. 09/11 parse-options.[ch]: make opt{bug,name}() "static"Ævar Arnfjörð Bjarmason, Oct 1, 2021
  36. 10/11 parse-options tests: test optname() outputÆvar Arnfjörð Bjarmason, Oct 1, 2021
  37. 11/11 parse-options: change OPT_{SHORT,UNSET} to an enumÆvar Arnfjörð Bjarmason, Oct 1, 2021
  38. Junio C HamanoOct 1, 2021
  39. Junio C HamanoOct 1, 2021
  40. 00/10 fix bug, use more enumsÆvar Arnfjörð Bjarmason, Oct 8, 2021
  41. 01/10 parse-options.h: move PARSE_OPT_SHELL_EVAL between enumsÆvar Arnfjörð Bjarmason, Oct 8, 2021
  42. 03/10 parse-options.[ch]: consistently use "enum parse_opt_result"Ævar Arnfjörð Bjarmason, Oct 8, 2021
  43. SZEDER GáborNov 6, 2021
  44. Ævar Arnfjörð BjarmasonNov 6, 2021
  45. 0/2 parse-options.[ch]: enum fixup & enum nitÆvar Arnfjörð Bjarmason, Nov 9, 2021
  46. 1/2 parse-options.[ch]: revert use of "enum" for parse_options()Ævar Arnfjörð Bjarmason, Nov 9, 2021
  47. Junio C HamanoNov 9, 2021
  48. 2/2 parse-options.c: use "enum parse_opt_result" for parse_nodash_opt()Ævar Arnfjörð Bjarmason, Nov 9, 2021
  49. Junio C HamanoNov 9, 2021
  50. Ævar Arnfjörð BjarmasonNov 9, 2021
  51. Junio C HamanoNov 9, 2021
  52. parse-options.c: use "enum parse_opt_result" for parse_nodash_opt()Ævar Arnfjörð Bjarmason, Nov 10, 2021
  53. Junio C HamanoNov 11, 2021
  54. 02/10 parse-options.[ch]: consistently use "enum parse_opt_flags"Ævar Arnfjörð Bjarmason, Oct 8, 2021
  55. 05/10 parse-options.h: make the "flags" in "struct option" an enumÆvar Arnfjörð Bjarmason, Oct 8, 2021
  56. 04/10 parse-options.c: use exhaustive "case" arms for "enum parse_opt_result"Ævar Arnfjörð Bjarmason, Oct 8, 2021
  57. 06/10 parse-options.c: move optname() earlier in the fileÆvar Arnfjörð Bjarmason, Oct 8, 2021
  58. 07/10 commit-graph: stop using optname()Ævar Arnfjörð Bjarmason, Oct 8, 2021
  59. 08/10 parse-options.[ch]: make opt{bug,name}() "static"Ævar Arnfjörð Bjarmason, Oct 8, 2021
  60. 09/10 parse-options tests: test optname() outputÆvar Arnfjörð Bjarmason, Oct 8, 2021
  61. 10/10 parse-options: change OPT_{SHORT,UNSET} to an enumÆvar Arnfjörð Bjarmason, Oct 8, 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.