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

Re: [RFC/PATCH v4 4/6] completion: simplify command stuff

From
SZEDER Gábor <szeder@ira.uka.de>
Date
May 7, 2012, 10:08 UTC
Message-ID
<20120507100858.GQ2164@goldbirke>
In-Reply-To
<1336353800-17323-5-git-send-email-felipe.contreras@gmail.com>
Hi,
On Mon, May 07, 2012 at 03:23:18AM +0200, Felipe Contreras wrote:
Show 6 quoted lines
> No need to recalculate it.
> 
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>  contrib/completion/git-completion.bash |   14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)

This seems to be the same patch you sent earlier as 7/12 in the first round. I had a few comments back then, see

  http://thread.gmane.org/gmane.comp.version-control.git/194958/focus=195276

But this $cmd variable will be only used in __git_complete_remote_or_refspec(), so perhaps your idea later in that thread about invoking it from _git_fetch() as

  __git_complete_remote_or_refspec "fetch"

would be better. That would only require one modification in its four callers, but neither in _git() in this patch nor in __git_complete() later in the series to set $cmd.

Best, Gábor

Show 56 quoted lines
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 8de0358..e648d7c 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -723,7 +723,7 @@ __git_complete_revlist ()
>  
>  __git_complete_remote_or_refspec ()
>  {
> -	local cur_="$cur" cmd="${words[1]}"
> +	local cur_="$cur"
>  	local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0
>  	if [ "$cmd" = "remote" ]; then
>  		((c++))
> @@ -2603,22 +2603,22 @@ _git_whatchanged ()
>  
>  _git ()
>  {
> -	local i c=1 command __git_dir
> +	local i c=1 cmd __git_dir
>  
>  	while [ $c -lt $cword ]; do
>  		i="${words[c]}"
>  		case "$i" in
>  		--git-dir=*) __git_dir="${i#--git-dir=}" ;;
>  		--bare)      __git_dir="." ;;
> -		--help) command="help"; break ;;
> +		--help) cmd="help"; break ;;
>  		-c) c=$((++c)) ;;
>  		-*) ;;
> -		*) command="$i"; break ;;
> +		*) cmd="$i"; break ;;
>  		esac
>  		((c++))
>  	done
>  
> -	if [ -z "$command" ]; then
> +	if [ -z "$cmd" ]; then
>  		case "$cur" in
>  		--*)   __gitcomp "
>  			--paginate
> @@ -2642,10 +2642,10 @@ _git ()
>  		return
>  	fi
>  
> -	local completion_func="_git_${command//-/_}"
> +	local completion_func="_git_${cmd//-/_}"
>  	declare -f $completion_func >/dev/null && $completion_func && return
>  
> -	local expansion=$(__git_aliased_command "$command")
> +	local expansion=$(__git_aliased_command "$cmd")
>  	if [ -n "$expansion" ]; then
>  		completion_func="_git_${expansion//-/_}"
>  		declare -f $completion_func >/dev/null && $completion_func
> -- 
> 1.7.10
> 
Previous: Felipe ContrerasNext: Felipe Contreras
Message 9 of 18 in “completion: __git_complete and other stuff”
  1. 0/6 completion: __git_complete and other stuffFelipe Contreras, May 7, 2012
  2. 1/6 completion: add new __git_complete helperFelipe Contreras, May 7, 2012
  3. SZEDER GáborMay 7, 2012
  4. Junio C HamanoMay 7, 2012
  5. Felipe ContrerasMay 7, 2012
  6. 2/6 tests: add more bash completion testsFelipe Contreras, May 7, 2012
  7. 3/6 completion: simplify _git_bundleFelipe Contreras, May 7, 2012
  8. 4/6 completion: simplify command stuffFelipe Contreras, May 7, 2012
  9. SZEDER GáborMay 7, 2012
  10. 5/6 completion: calculate argument position properlyFelipe Contreras, May 7, 2012
  11. Felipe ContrerasMay 7, 2012
  12. Junio C HamanoMay 7, 2012
  13. Felipe ContrerasMay 7, 2012
  14. Junio C HamanoMay 7, 2012
  15. Felipe ContrerasMay 8, 2012
  16. 6/6 completion: add public _GIT_complete helperFelipe Contreras, May 7, 2012
  17. Junio C HamanoMay 7, 2012
  18. Felipe ContrerasMay 7, 2012

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.