Re: [BUG] completion.commands does not remove multiple commands
- From
Todd Zullinger <tmz@pobox.com>
- Date
- Mar 1, 2019, 17:34 UTC
- Message-ID
- <20190301173443.16429-1-tmz@pobox.com>
- In-Reply-To
- <20190228230506.GA20625@sigill.intra.peff.net>
Jeff King wrote:
> I can reproduce your problem, though the test you included passes for me > even with the current tip of master.
Oh, hrm. I think the issue is that completion.commands needs to be set in the global (or system-wide) config, via test_config_global rather than the local repo config which test_config sets.
In hindsight, that seems obvious. But it's probably worth noting that where completion.commands is documented, for anyone who might spend a few cycles trying to configure it on a per-repo basis before realizing it doesn't work.
Show 20 quoted lines
> I suspect this is the problem: > > diff --git a/help.c b/help.c > index 520c9080e8..026f881715 100644 > --- a/help.c > +++ b/help.c > @@ -393,8 +393,8 @@ void list_cmds_by_config(struct string_list *list) > const char *p = strchrnul(cmd_list, ' '); > > strbuf_add(&sb, cmd_list, p - cmd_list); > - if (*cmd_list == '-') > - string_list_remove(list, cmd_list + 1, 0); > + if (sb.buf[0] == '-') > + string_list_remove(list, sb.buf + 1, 0); > else > string_list_insert(list, sb.buf); > strbuf_release(&sb); > > though I can't help but wonder if the whole thing would be simpler using > string_list_split().
That does indeed fix things (as does SZEDER's similar version, which arrived only a few seconds later). Thanks to both of you for the very quick replies!
I'll leave it to those who know better to follow up with a change to use string_list_split().
Here's a first stab at improving the docs and fixing the bug.
Jeff King (1): completion: fix multiple command removals
Todd Zullinger (2): doc: note config file restrictions for completion.commands t9902: test multiple removals via completion.commands
Documentation/config/completion.txt | 3 ++- Documentation/git.txt | 3 ++- help.c | 4 ++-- t/t9902-completion.sh | 8 ++++++++ 4 files changed, 14 insertions(+), 4 deletions(-)
Published-as: https://github.com/tmzullinger/git/releases/tag/completion.commands-v1
-- Todd