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

[PATCH v7 01/10] help.c: refactor drop_prefix() to use a "switch" statement"

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Aug 2, 2022, 12:56 UTC
Message-ID
<patch-v7-01.10-2665148f45b-20220802T125258Z-avarab@gmail.com>
In-Reply-To
<cover-v7-00.10-00000000000-20220802T125258Z-avarab@gmail.com>

Refactor the drop_prefix() function in in help.c to make it easier to strip prefixes from categories that aren't "CAT_guide". There are no functional changes here, by doing this we make a subsequent functional change's diff smaller.

As before we first try to strip "git-" unconditionally, if that works we'll return the stripped string. Then we'll strip "git" if the command is in "CAT_guide".

This means that we'd in principle strip "git-gitfoo" down to "foo" if it's in CAT_guide. That doesn't make much sense, and we don't have such an entry in command-list.txt, but let's preserve that behavior for now.

While we're at it remove a stray newline that had been added after the "return name;" statement.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 help.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/help.c b/help.c
index 41c41c2aa11..7e594d291b0 100644
--- a/help.c
+++ b/help.c
@@ -44,13 +44,19 @@ static struct category_description main_categories[] = {
 static const char *drop_prefix(const char *name, uint32_t category)
 {
 	const char *new_name;
+	const char *prefix = NULL;
 
 	if (skip_prefix(name, "git-", &new_name))
 		return new_name;
-	if (category == CAT_guide && skip_prefix(name, "git", &new_name))
+	switch (category) {
+	case CAT_guide:
+		prefix = "git";
+		break;
+	}
+	if (prefix && skip_prefix(name, prefix, &new_name))
 		return new_name;
-	return name;
 
+	return name;
 }
 
 static void extract_cmds(struct cmdname_help **p_cmds, uint32_t mask)
-- 
2.37.1.1232.gc0cde427aa7
Previous: Ævar Arnfjörð BjarmasonNext: Junio C Hamano
Message 65 of 112 in “git(1) doc + "git help": split-out user & git format docs”
  1. 0/2 git(1) doc + "git help": split-out user & git format docsÆvar Arnfjörð Bjarmason, Oct 15, 2021
  2. 1/2 git(1) docs: split "User-facing file formats" off from "Guides"Ævar Arnfjörð Bjarmason, Oct 15, 2021
  3. 2/2 git(1) docs: create a "Git file and wire formats" sectionÆvar Arnfjörð Bjarmason, Oct 15, 2021
  4. 0/5 git doc + "git help": move "format" docs from technical/*Ævar Arnfjörð Bjarmason, Dec 12, 2021
  5. 1/5 git docs: split "User-facing file formats" off from "Guides"Ævar Arnfjörð Bjarmason, Dec 12, 2021
  6. 2/5 git docs: create a "Git file and wire formats" sectionÆvar Arnfjörð Bjarmason, Dec 12, 2021
  7. Eric SunshineDec 12, 2021
  8. Ævar Arnfjörð BjarmasonDec 13, 2021
  9. 3/5 docs: move commit-graph format docs to man section 5Ævar Arnfjörð Bjarmason, Dec 12, 2021
  10. 4/5 docs: move protocol-related docs to man section 5Ævar Arnfjörð Bjarmason, Dec 12, 2021
  11. 5/5 docs: move {index,signature,bitmap,chunk}-format docs to man section 5Ævar Arnfjörð Bjarmason, Dec 12, 2021
  12. 0/7 git doc + "git help": move "format" docs from technical/*Ævar Arnfjörð Bjarmason, Jul 12, 2022
  13. 1/7 git docs: split "User-facing file formats" off from "Guides"Ævar Arnfjörð Bjarmason, Jul 12, 2022
  14. Ævar Arnfjörð BjarmasonJul 13, 2022
  15. 2/7 git docs: create a "Git file formats and protocols" sectionÆvar Arnfjörð Bjarmason, Jul 12, 2022
  16. 3/7 docs: move commit-graph format docs to man section 5Ævar Arnfjörð Bjarmason, Jul 12, 2022
  17. 4/7 docs: move protocol-related docs to man section 5Ævar Arnfjörð Bjarmason, Jul 12, 2022
  18. 5/7 docs: move pack format docs to man section 5Ævar Arnfjörð Bjarmason, Jul 12, 2022
  19. 6/7 docs: move http-protocol docs to man section 5Ævar Arnfjörð Bjarmason, Jul 12, 2022
  20. 7/7 docs: move multi-pack-index docs to man section 5Ævar Arnfjörð Bjarmason, Jul 12, 2022
  21. 0/8 git doc + "git help": move "format" docs from technical/*Ævar Arnfjörð Bjarmason, Jul 18, 2022
  22. 1/8 help.c: BUG() out if "help --guides" can't remove "git" prefixesÆvar Arnfjörð Bjarmason, Jul 18, 2022
  23. Junio C HamanoJul 18, 2022
  24. 2/8 git docs: split "User-facing file formats" off from "Guides"Ævar Arnfjörð Bjarmason, Jul 18, 2022
  25. Junio C HamanoJul 18, 2022
  26. Ævar Arnfjörð BjarmasonJul 18, 2022
  27. Junio C HamanoJul 19, 2022
  28. Ævar Arnfjörð BjarmasonJul 21, 2022
  29. 3/8 git docs: create a "Git file formats and protocols" sectionÆvar Arnfjörð Bjarmason, Jul 18, 2022
  30. 4/8 docs: move commit-graph format docs to man section 5Ævar Arnfjörð Bjarmason, Jul 18, 2022
  31. 5/8 docs: move protocol-related docs to man section 5Ævar Arnfjörð Bjarmason, Jul 18, 2022
  32. 7/8 docs: move http-protocol docs to man section 5Ævar Arnfjörð Bjarmason, Jul 18, 2022
  33. 8/8 docs: move multi-pack-index docs to man section 5Ævar Arnfjörð Bjarmason, Jul 18, 2022
  34. 6/8 docs: move pack format docs to man section 5Ævar Arnfjörð Bjarmason, Jul 18, 2022
  35. Junio C HamanoJul 18, 2022
  36. Ævar Arnfjörð BjarmasonJul 18, 2022
  37. Ævar Arnfjörð BjarmasonJul 21, 2022
  38. 0/9 docs: create & use "(user|developer) interfaces" categoriesÆvar Arnfjörð Bjarmason, Jul 21, 2022
  39. 1/9 help.c: BUG() out if "help --guides" can't remove "git" prefixesÆvar Arnfjörð Bjarmason, Jul 21, 2022
  40. 2/9 git help doc: use "<doc>" instead of "<guide>"Ævar Arnfjörð Bjarmason, Jul 21, 2022
  41. 3/9 git docs: add a category for user-facing file, repo and command UXÆvar Arnfjörð Bjarmason, Jul 21, 2022
  42. 4/9 git docs: add a category for file formats, protocols and interfacesÆvar Arnfjörð Bjarmason, Jul 21, 2022
  43. Eric SunshineJul 21, 2022
  44. 5/9 docs: move commit-graph format docs to man section 5Ævar Arnfjörð Bjarmason, Jul 21, 2022
  45. 6/9 docs: move protocol-related docs to man section 5Ævar Arnfjörð Bjarmason, Jul 21, 2022
  46. 7/9 docs: move pack format docs to man section 5Ævar Arnfjörð Bjarmason, Jul 21, 2022
  47. 8/9 docs: move http-protocol docs to man section 5Ævar Arnfjörð Bjarmason, Jul 21, 2022
  48. 9/9 docs: move multi-pack-index docs to man section 5Ævar Arnfjörð Bjarmason, Jul 21, 2022
  49. Junio C HamanoJul 21, 2022
  50. 0/9 docs: create & use "(user|developer) interfaces" categoriesÆvar Arnfjörð Bjarmason, Jul 28, 2022
  51. 1/9 help.c: BUG() out if "help --guides" can't remove "git" prefixesÆvar Arnfjörð Bjarmason, Jul 28, 2022
  52. Junio C HamanoJul 30, 2022
  53. Ævar Arnfjörð BjarmasonAug 1, 2022
  54. Junio C HamanoAug 1, 2022
  55. 2/9 git help doc: use "<doc>" instead of "<guide>"Ævar Arnfjörð Bjarmason, Jul 28, 2022
  56. 3/9 git docs: add a category for user-facing file, repo and command UXÆvar Arnfjörð Bjarmason, Jul 28, 2022
  57. 4/9 git docs: add a category for file formats, protocols and interfacesÆvar Arnfjörð Bjarmason, Jul 28, 2022
  58. 5/9 docs: move commit-graph format docs to man section 5Ævar Arnfjörð Bjarmason, Jul 28, 2022
  59. 6/9 docs: move protocol-related docs to man section 5Ævar Arnfjörð Bjarmason, Jul 28, 2022
  60. 7/9 docs: move pack format docs to man section 5Ævar Arnfjörð Bjarmason, Jul 28, 2022
  61. 8/9 docs: move http-protocol docs to man section 5Ævar Arnfjörð Bjarmason, Jul 28, 2022
  62. 9/9 docs: move multi-pack-index docs to man section 5Ævar Arnfjörð Bjarmason, Jul 28, 2022
  63. Junio C HamanoJul 28, 2022
  64. 00/10 docs: create & use "(user|developer) interfaces" categoriesÆvar Arnfjörð Bjarmason, Aug 2, 2022
  65. 01/10 help.c: refactor drop_prefix() to use a "switch" statement"Ævar Arnfjörð Bjarmason, Aug 2, 2022
  66. Junio C HamanoAug 2, 2022
  67. 02/10 help.c: remove common category behavior from drop_prefix() behaviorÆvar Arnfjörð Bjarmason, Aug 2, 2022
  68. 03/10 git help doc: use "<doc>" instead of "<guide>"Ævar Arnfjörð Bjarmason, Aug 2, 2022
  69. 04/10 git docs: add a category for user-facing file, repo and command UXÆvar Arnfjörð Bjarmason, Aug 2, 2022
  70. 05/10 git docs: add a category for file formats, protocols and interfacesÆvar Arnfjörð Bjarmason, Aug 2, 2022
  71. Junio C HamanoAug 2, 2022
  72. 06/10 docs: move commit-graph format docs to man section 5Ævar Arnfjörð Bjarmason, Aug 2, 2022
  73. Junio C HamanoAug 3, 2022
  74. 07/10 docs: move protocol-related docs to man section 5Ævar Arnfjörð Bjarmason, Aug 2, 2022
  75. Junio C HamanoAug 3, 2022
  76. Ævar Arnfjörð BjarmasonAug 4, 2022
  77. Junio C HamanoAug 4, 2022
  78. Ævar Arnfjörð BjarmasonAug 5, 2022
  79. 09/10 docs: move http-protocol docs to man section 5Ævar Arnfjörð Bjarmason, Aug 2, 2022
  80. Junio C HamanoAug 3, 2022
  81. 08/10 docs: move pack format docs to man section 5Ævar Arnfjörð Bjarmason, Aug 2, 2022
  82. Junio C HamanoAug 3, 2022
  83. 10/10 docs: move multi-pack-index docs to man section 5Ævar Arnfjörð Bjarmason, Aug 2, 2022
  84. Junio C HamanoAug 3, 2022
  85. 00/12 docs: create & use "(user|developer) interfaces" categoriesÆvar Arnfjörð Bjarmason, Aug 4, 2022
  86. 01/12 help.c: refactor drop_prefix() to use a "switch" statement"Ævar Arnfjörð Bjarmason, Aug 4, 2022
  87. Junio C HamanoAug 4, 2022
  88. 02/12 help.c: remove common category behavior from drop_prefix() behaviorÆvar Arnfjörð Bjarmason, Aug 4, 2022
  89. 03/12 git help doc: use "<doc>" instead of "<guide>"Ævar Arnfjörð Bjarmason, Aug 4, 2022
  90. 04/12 git docs: add a category for user-facing file, repo and command UXÆvar Arnfjörð Bjarmason, Aug 4, 2022
  91. 05/12 git docs: add a category for file formats, protocols and interfacesÆvar Arnfjörð Bjarmason, Aug 4, 2022
  92. 06/12 docs: move commit-graph format docs to man section 5Ævar Arnfjörð Bjarmason, Aug 4, 2022
  93. Junio C HamanoAug 4, 2022
  94. SZEDER GáborNov 8, 2022
  95. Ævar Arnfjörð BjarmasonNov 8, 2022
  96. SZEDER GáborNov 8, 2022
  97. Ævar Arnfjörð BjarmasonNov 9, 2022
  98. docs: de-indent first paragraph of gitformat-* to flow the textÆvar Arnfjörð Bjarmason, Nov 21, 2022
  99. Jeff KingNov 21, 2022
  100. Junio C HamanoNov 22, 2022
  101. 08/12 docs: move index format docs to man section 5Ævar Arnfjörð Bjarmason, Aug 4, 2022
  102. Junio C HamanoAug 4, 2022
  103. 09/12 docs: move signature docs to man section 5Ævar Arnfjörð Bjarmason, Aug 4, 2022
  104. Junio C HamanoAug 4, 2022
  105. 07/12 docs: move protocol-related docs to man section 5Ævar Arnfjörð Bjarmason, Aug 4, 2022
  106. 10/12 docs: move pack format docs to man section 5Ævar Arnfjörð Bjarmason, Aug 4, 2022
  107. 11/12 docs: move cruft pack docs to gitformat-packÆvar Arnfjörð Bjarmason, Aug 4, 2022
  108. Junio C HamanoAug 4, 2022
  109. Ævar Arnfjörð BjarmasonAug 5, 2022
  110. Junio C HamanoAug 5, 2022
  111. 12/12 docs: move http-protocol docs to man section 5Ævar Arnfjörð Bjarmason, Aug 4, 2022
  112. Junio C HamanoAug 4, 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.