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
Felipe Contreras <felipe.contreras@gmail.com>
Date
Dec 30, 2020, 18:09 UTC
Message-ID
<5fecc25b369f9_879c52083c@natae.notmuch>
In-Reply-To
<20201230180008.GL8396@szeder.dev>
SZEDER Gábor wrote:
Show 22 quoted lines
> On Wed, Dec 30, 2020 at 06:17:52PM +0100, René Scharfe wrote:
> > > +__git_have_func () {
> > > +	declare -f $1 >/dev/null 2>/dev/null
> 
> > And then I wondered why use declare -f, which prints the function's
> > body, when there is -F, which just prints the function's name.  And why
> > repeat /dev/null when redirecting stderr when the more shorter 2>&1
> > would do the same?  None of hat was introduced by you patch, of course.
> > Anyway, this seems to work for me:
> > 
> > 	__git_have_func () {
> > 		case "$1" in
> > 		-*) return 1 ;;
> > 		esac
> > 		declare -F "$1" >/dev/null 2>&1
> > 	}
> 
> The Bash completion script should be usable from Zsh as well, and Zsh
> only supports 'declare -f' but not '-F', see 06f44c3cc5 (completion:
> make compatible with zsh, 2010-09-06).  The Zsh version included in
> the 16.04 based LTS setup that I have at hand doesn't yet seem to have
> a (for us) usable 'declare -F' yet.
Ahh. Good catch.
  declare -f -- "$1" >/dev/null 2>&1
Then.
-- 
Felipe Contreras
Previous: SZEDER GáborNext: Felipe Contreras
Message 9 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.