Git fork

help.c: remove common category behavior from drop_prefix() behavior

Change the behavior of the "git" prefix stripping for CAT_guide so
that we don't try to strip the "git-" prefix in that case. We should
be stripping either "git" or "git-" depending on the category. This
change makes it easier to add extra "category" conditions in
subsequent commits.

Before this we'd in principle strip a "git-" prefix from a "guide" in
command-list.txt, in practice we have no such entry there. As we don't
have any entry that looks like "git-foo" in command-list.txt this
changes nothing in practice, but it makes the intent of the code
clearer. In that hypothetical case we'd now strip it down to "-foo",
not "foo".

When this code was added in cfb22a02ab5 (help: use command-list.h for
common command list, 2018-05-10) the only entries in command-list.txt
that didn't begin with "git-" were "gitweb" and "gitk".

Then when the "guides" special-case was added in 1b81d8cb19d (help:
use command-list.txt for the source of guides, 2018-05-20) we had the
various "git" (not "git-") prefixed "guide" entries, which the
"CAT_guide" case handles.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Ævar Arnfjörð Bjarmason and committed by
Junio C Hamano
936b8eb6 2f8b3ea6

+5 -4
+5 -4
help.c
··· 44 44 static const char *drop_prefix(const char *name, uint32_t category) 45 45 { 46 46 const char *new_name; 47 - const char *prefix = NULL; 47 + const char *prefix; 48 48 49 - if (skip_prefix(name, "git-", &new_name)) 50 - return new_name; 51 49 switch (category) { 52 50 case CAT_guide: 53 51 prefix = "git"; 54 52 break; 53 + default: 54 + prefix = "git-"; 55 + break; 55 56 } 56 - if (prefix && skip_prefix(name, prefix, &new_name)) 57 + if (skip_prefix(name, prefix, &new_name)) 57 58 return new_name; 58 59 59 60 return name;