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

[PATCH 06/11] completion: simplify inner 'case' pattern in __gitcomp()

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Aug 13, 2019, 12:26 UTC
Message-ID
<20190813122652.16468-7-szeder.dev@gmail.com>
In-Reply-To
<20190813122652.16468-1-szeder.dev@gmail.com>

The second '*' in the '--*=*' pattern of the inner 'case' statement of the __gitcomp() helper function never matches anything, so let's use '--*=' instead.

The purpose of that inner case statement is to decide when to append a trailing space to the listed options and when not. When an option requires a stuck argument, i.e. '--option=', then the trailing space should not be added, so the user can continue typing the required argument right away. That '--*=*' pattern is supposed to match these options, but for this purpose that second '*' is unnecessary, a '--*=' pattern works just as well. That second '*' would only make a difference in case of a possible completion word like '--option=value', but our completion script never passes such a word to __gitcomp(), because the '--option=' and its 'value' must be completed separately.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---
 contrib/completion/git-completion.bash | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b51cb31ea1..fc437bf3eb 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -340,7 +340,7 @@ __gitcomp ()
 			c="$c${4-}"
 			if [[ $c == "$cur_"* ]]; then
 				case $c in
-				--*=*|*.) ;;
+				--*=|*.) ;;
 				*) c="$c " ;;
 				esac
 				COMPREPLY[i++]="${2-}$c"
@@ -360,7 +360,7 @@ __gitcomp ()
 			c="$c${4-}"
 			if [[ $c == "$cur_"* ]]; then
 				case $c in
-				--*=*|*.) ;;
+				--*=|*.) ;;
 				*) c="$c " ;;
 				esac
 				COMPREPLY[i++]="${2-}$c"
-- 
2.23.0.rc2.350.gf4fdc32db7
Previous: SZEDER GáborNext: SZEDER Gábor
Message 8 of 12 in “completion: complete configuration variables and values after 'git -c <TAB>'”
  1. 00/11 completion: complete configuration variables and values after 'git -c <TAB>'SZEDER Gábor, Aug 13, 2019
  2. 01/11 completion: fix a typo in a commentSZEDER Gábor, Aug 13, 2019
  3. 02/11 completion: complete more values of more 'color.*' configuration variablesSZEDER Gábor, Aug 13, 2019
  4. 04/11 completion: deduplicate configuration sectionsSZEDER Gábor, Aug 13, 2019
  5. 03/11 completion: add tests for 'git config' completionSZEDER Gábor, Aug 13, 2019
  6. 05/11 completion: use 'sort -u' to deduplicate config variable namesSZEDER Gábor, Aug 13, 2019
  7. 07/11 completion: split _git_config()SZEDER Gábor, Aug 13, 2019
  8. 06/11 completion: simplify inner 'case' pattern in __gitcomp()SZEDER Gábor, Aug 13, 2019
  9. 08/11 completion: complete configuration sections and variable names for 'git -c'SZEDER Gábor, Aug 13, 2019
  10. 11/11 completion: complete config variables and values for 'git clone --config='SZEDER Gábor, Aug 13, 2019
  11. 10/11 completion: complete config variables names and values for 'git clone -c'SZEDER Gábor, Aug 13, 2019
  12. 09/11 completion: complete values of configuration variables after 'git -c var='SZEDER Gábor, Aug 13, 2019

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.