Re: [PATCH v4 1/8] help.c: BUG() out if "help --guides" can't remove "git" prefixes
From: Junio C Hamano <hidden>
Date: 2022-07-18 17:03:15
Ævar Arnfjörð Bjarmason [off-list ref] writes:
Adjust code added in 929d9192828 (git docs: split "User-facing file formats" off from "Guides", 2021-06-04) to be more strict about the prefix trimming of the "guides" category. There are no guides in the command-list.txt that don't start with "git", and we're unlikely to ever add any, if we do we can remove this BUG() invocation, but in the meantime this makes the intent more clear.
The observation is good.
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:
+ if (!skip_prefix(name, "git", &new_name))
+ BUG("category #%d but no 'git' prefix?", category);
return new_name;
+ }
return name;
-
}
If we were to use "switch", can we have the opening brace on the
same line, like all other switch statements?
I suspect that we should avoid losing information, perhaps the most
straight-forward implementation would be without "switch", like so
if (category == CAT_guide) {
if (skip_prefix(name, "git", &new_name))
return new_name;
BUG("CAT_guide category but no 'git' prefix? '%s'", name);
}
return name;
even if we plan to add more categories that would remove the prefix
and we insist the prefix to be there?
static void extract_cmds(struct cmdname_help **p_cmds, uint32_t mask)