git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] git-completion: fix zsh support
@ 2011-04-27  1:26 Felipe Contreras
  2011-04-27  1:35 ` Jonathan Nieder
  2011-04-27  2:21 ` Jonathan Nieder
  0 siblings, 2 replies; 28+ messages in thread
From: Felipe Contreras @ 2011-04-27  1:26 UTC (permalink / raw)
  To: git; +Cc: Jonathan Nieder, Felipe Contreras

It turns out 'words' is a special variable used by zsh completion, and
it has some strange behavior as we can see.

Better avoid it.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 contrib/completion/git-completion.bash |   66 ++++++++++++++++----------------
 1 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b94ff3c..9aae484 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -447,8 +447,8 @@ _get_comp_words_by_ref ()
 		prev)
 			prev=${words_[$cword_-1]}
 			;;
-		words)
-			words=("${words_[@]}")
+		cwords)
+			cwords=("${words_[@]}")
 			;;
 		cword)
 			cword=$cword_
@@ -468,8 +468,8 @@ _get_comp_words_by_ref ()
 		prev)
 			prev=${COMP_WORDS[COMP_CWORD-1]}
 			;;
-		words)
-			words=("${COMP_WORDS[@]}")
+		cwords)
+			cwords=("${COMP_WORDS[@]}")
 			;;
 		cword)
 			cword=$COMP_CWORD
@@ -739,12 +739,12 @@ __git_complete_revlist ()
 
 __git_complete_remote_or_refspec ()
 {
-	local cur words cword
-	_get_comp_words_by_ref -n =: cur words cword
-	local cmd="${words[1]}"
+	local cur cwords cword
+	_get_comp_words_by_ref -n =: cur cwords cword
+	local cmd="${cwords[1]}"
 	local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0
 	while [ $c -lt $cword ]; do
-		i="${words[c]}"
+		i="${cwords[c]}"
 		case "$i" in
 		--mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;;
 		--all)
@@ -991,10 +991,10 @@ __git_aliased_command ()
 # __git_find_on_cmdline requires 1 argument
 __git_find_on_cmdline ()
 {
-	local word subcommand c=1 words cword
-	_get_comp_words_by_ref -n =: words cword
+	local word subcommand c=1 cwords cword
+	_get_comp_words_by_ref -n =: cwords cword
 	while [ $c -lt $cword ]; do
-		word="${words[c]}"
+		word="${cwords[c]}"
 		for subcommand in $1; do
 			if [ "$subcommand" = "$word" ]; then
 				echo "$subcommand"
@@ -1007,10 +1007,10 @@ __git_find_on_cmdline ()
 
 __git_has_doubledash ()
 {
-	local c=1 words cword
-	_get_comp_words_by_ref -n =: words cword
+	local c=1 cwords cword
+	_get_comp_words_by_ref -n =: cwords cword
 	while [ $c -lt $cword ]; do
-		if [ "--" = "${words[c]}" ]; then
+		if [ "--" = "${cwords[c]}" ]; then
 			return 0
 		fi
 		c=$((++c))
@@ -1135,11 +1135,11 @@ _git_bisect ()
 
 _git_branch ()
 {
-	local i c=1 only_local_ref="n" has_r="n" cur words cword
+	local i c=1 only_local_ref="n" has_r="n" cur cwords cword
 
-	_get_comp_words_by_ref -n =: cur words cword
+	_get_comp_words_by_ref -n =: cur cwords cword
 	while [ $c -lt $cword ]; do
-		i="${words[c]}"
+		i="${cwords[c]}"
 		case "$i" in
 		-d|-m)	only_local_ref="y" ;;
 		-r)	has_r="y" ;;
@@ -1167,9 +1167,9 @@ _git_branch ()
 
 _git_bundle ()
 {
-	local words cword
-	_get_comp_words_by_ref -n =: words cword
-	local cmd="${words[2]}"
+	local cwords cword
+	_get_comp_words_by_ref -n =: cwords cword
+	local cmd="${cwords[2]}"
 	case "$cword" in
 	2)
 		__gitcomp "create list-heads verify unbundle"
@@ -1713,15 +1713,15 @@ _git_notes ()
 {
 	local subcommands='add append copy edit list prune remove show'
 	local subcommand="$(__git_find_on_cmdline "$subcommands")"
-	local cur words cword
-	_get_comp_words_by_ref -n =: cur words cword
+	local cur cwords cword
+	_get_comp_words_by_ref -n =: cur cwords cword
 
 	case "$subcommand,$cur" in
 	,--*)
 		__gitcomp '--ref'
 		;;
 	,*)
-		case "${words[cword-1]}" in
+		case "${cwords[cword-1]}" in
 		--ref)
 			__gitcomp "$(__git_refs)"
 			;;
@@ -1749,7 +1749,7 @@ _git_notes ()
 	prune,*)
 		;;
 	*)
-		case "${words[cword-1]}" in
+		case "${cwords[cword-1]}" in
 		-m|-F)
 			;;
 		*)
@@ -1893,11 +1893,11 @@ _git_stage ()
 
 __git_config_get_set_variables ()
 {
-	local words cword
-	_get_comp_words_by_ref -n =: words cword
+	local cwords cword
+	_get_comp_words_by_ref -n =: cwords cword
 	local prevword word config_file= c=$cword
 	while [ $c -gt 1 ]; do
-		word="${words[c]}"
+		word="${cwords[c]}"
 		case "$word" in
 		--global|--system|--file=*)
 			config_file="$word"
@@ -2665,10 +2665,10 @@ _git_svn ()
 _git_tag ()
 {
 	local i c=1 f=0
-	local words cword prev
-	_get_comp_words_by_ref -n =: words cword prev
+	local cwords cword prev
+	_get_comp_words_by_ref -n =: cwords cword prev
 	while [ $c -lt $cword ]; do
-		i="${words[c]}"
+		i="${cwords[c]}"
 		case "$i" in
 		-d|-v)
 			__gitcomp "$(__git_tags)"
@@ -2712,10 +2712,10 @@ _git ()
 		setopt KSH_TYPESET
 	fi
 
-	local cur words cword
-	_get_comp_words_by_ref -n =: cur words cword
+	local cur cwords cword
+	_get_comp_words_by_ref -n =: cur cwords cword
 	while [ $c -lt $cword ]; do
-		i="${words[c]}"
+		i="${cwords[c]}"
 		case "$i" in
 		--git-dir=*) __git_dir="${i#--git-dir=}" ;;
 		--bare)      __git_dir="." ;;
-- 
1.7.5

^ permalink raw reply related	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2011-05-08 10:48 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-27  1:26 [PATCH] git-completion: fix zsh support Felipe Contreras
2011-04-27  1:35 ` Jonathan Nieder
2011-04-27  1:42   ` Felipe Contreras
2011-04-27  4:55   ` Junio C Hamano
2011-04-27  6:40     ` [RFC/PATCH] completion: avoid "words" as variable name for zsh portability Jonathan Nieder
2011-04-27  8:42       ` Felipe Contreras
2011-04-27  9:11         ` Jonathan Nieder
2011-04-27  9:49           ` Felipe Contreras
2011-04-27  9:59             ` John Szakmeister
2011-04-27 10:09             ` Felipe Contreras
2011-04-27 21:27               ` [PATCH] completion: move private shopt shim for zsh to __git_ namespace Jonathan Nieder
2011-04-27 22:48                 ` Felipe Contreras
2011-04-27 23:00                   ` Jonathan Nieder
2011-05-06  5:46                 ` Jonathan Nieder
2011-05-06  8:35                   ` Felipe Contreras
2011-05-08 10:48                   ` SZEDER Gábor
2011-04-28 16:01       ` [RFC/PATCH] completion: avoid "words" as variable name for zsh portability SZEDER Gábor
2011-04-28 16:01         ` [PATCH 1/3] bash: don't modify the $cur variable in completion functions SZEDER Gábor
2011-04-28 16:01           ` [PATCH 2/3] bash: remove unnecessary _get_comp_words_by_ref() invocations SZEDER Gábor
2011-04-28 16:01           ` [PATCH 3/3] bash: don't declare 'local words' to make zsh happy SZEDER Gábor
2011-05-03 17:53             ` Felipe Contreras
2011-04-28 20:24         ` [RFC/PATCH] completion: avoid "words" as variable name for zsh portability Felipe Contreras
2011-04-28 20:52           ` Junio C Hamano
2011-04-28 21:27             ` Felipe Contreras
2011-04-27  8:20     ` [PATCH] git-completion: fix zsh support Felipe Contreras
2011-04-27 16:56       ` Junio C Hamano
2011-04-27 17:17         ` Felipe Contreras
2011-04-27  2:21 ` Jonathan Nieder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).