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

Re: [PATCH v2 1/3] completion: bash: add __git_have_func helper

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 6, 2021, 08:30 UTC
Message-ID
<xmqqh7nusc0r.fsf@gitster.c.googlers.com>
In-Reply-To
<5fecbb6b2f9a_871cb208f6@natae.notmuch>
Felipe Contreras <felipe.contreras@gmail.com> writes:
Show 17 quoted lines
>> Anyway, this seems to work for me:
>> 
>> 	__git_have_func () {
>> 		case "$1" in
>> 		-*) return 1 ;;
>> 		esac
>> 		declare -F "$1" >/dev/null 2>&1
>> 	}
>
> I wondered some of those things too, but opted for the minimal approach.
>
> Your change seems good to me, however I prefer this to the case
> statement:
>
>   [[ "$1" == -* ]] && return 1
>
> But doesn't seem to be too welcomed in git's bash style.

Actually, there is no formal "bash style" guide for our codebase. In bash completion script, you are free to use any bashisms as you find convenient, as long as it is consistent with the surrounding code.

As SZEDER and you later agree in the downthread, Zsh compatibility would be a lot more important than sticking to general POSIX shell subset (and following our shell style guide for the rest of the system that tries hard to be independent from bashism) when improving this script.

Show 5 quoted lines
> Looks like this would be prefered:
>
>   if [[ "$1" == -* ]]; then
>     return 1
>   fi

This is another example that we do not apply the shell style guide in Documentation/CodingGuidelines to this script (if we did, we wouldn't see the semicolon there).

Thanks.
Previous: Felipe ContrerasNext: SZEDER Gábor
Message 7 of 10 in “completion: make __git_complete public”
  1. 0/3 completion: make __git_complete publicFelipe Contreras, Dec 29, 2020
  2. 2/3 test: completion: add tests for __git_completeFelipe Contreras, Dec 29, 2020
  3. 1/3 completion: bash: add __git_have_func helperFelipe Contreras, Dec 29, 2020
  4. René ScharfeDec 30, 2020
  5. Felipe ContrerasDec 30, 2020
  6. Felipe ContrerasDec 30, 2020
  7. Junio C HamanoJan 6, 2021
  8. SZEDER GáborDec 30, 2020
  9. Felipe ContrerasDec 30, 2020
  10. 3/3 completion: add proper public __git_completeFelipe Contreras, Dec 29, 2020

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.