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

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

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Dec 29, 2020, 17:08 UTC
Message-ID
<20201229170837.297857-2-felipe.contreras@gmail.com>
In-Reply-To
<20201229170837.297857-1-felipe.contreras@gmail.com>

This makes the code more readable, and also will help when new code wants to do similar checks.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 contrib/completion/git-completion.bash | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 463a3124da..869c73ee2c 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -3358,15 +3358,19 @@ __git_support_parseopt_helper () {
 	esac
 }
 
+__git_have_func () {
+	declare -f $1 >/dev/null 2>/dev/null
+}
+
 __git_complete_command () {
 	local command="$1"
 	local completion_func="_git_${command//-/_}"
-	if ! declare -f $completion_func >/dev/null 2>/dev/null &&
-		declare -f _completion_loader >/dev/null 2>/dev/null
+	if ! __git_have_func $completion_func &&
+		__git_have_func _completion_loader
 	then
 		_completion_loader "git-$command"
 	fi
-	if declare -f $completion_func >/dev/null 2>/dev/null
+	if __git_have_func $completion_func
 	then
 		$completion_func
 		return 0
-- 
2.30.0
Previous: Felipe ContrerasNext: René Scharfe
Message 3 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.