All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"SZEDER Gábor" <szeder@ira.uka.de>,
	"Björn Gustavsson" <bgustavsson@gmail.com>,
	"Shawn O. Pearce" <spearce@spearce.org>,
	"Robert Zeh" <robert.a.zeh@gmail.com>,
	"Peter van der Does" <peter@avirtualhome.com>,
	"Jonathan Nieder" <jrnieder@gmail.com>,
	"Felipe Contreras" <felipe.contreras@gmail.com>,
	"Jeff King" <peff@peff.net>
Subject: [RFC/PATCH 2/5] completion: add new __gitcompadd helper
Date: Sat, 17 Nov 2012 02:38:15 +0100	[thread overview]
Message-ID: <1353116298-11798-3-git-send-email-felipe.contreras@gmail.com> (raw)
In-Reply-To: <1353116298-11798-1-git-send-email-felipe.contreras@gmail.com>

The idea is to never touch the COMPREPLY variable directly.

This allows other completion systems override __gitcompadd, and do
something different instead.

Also, this allows the simplification of the completion tests (separate
patch).

There should be no functional changes.

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

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 7bdd6a8..975ae13 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -225,6 +225,11 @@ _get_comp_words_by_ref ()
 fi
 fi
 
+__gitcompadd ()
+{
+	COMPREPLY=($(compgen -W "$1" -P "$2" -S "$4" -- "$3"))
+}
+
 # Generates completion reply with compgen, appending a space to possible
 # completion words, if necessary.
 # It accepts 1 to 4 arguments:
@@ -241,9 +246,7 @@ __gitcomp ()
 		;;
 	*)
 		local IFS=$'\n'
-		COMPREPLY=($(compgen -P "${2-}" \
-			-W "$(__gitcomp_1 "${1-}" "${4-}")" \
-			-- "$cur_"))
+		__gitcompadd "$(__gitcomp_1 "${1-}" "${4-}")" "${2-}" "$cur_" ""
 		;;
 	esac
 }
@@ -260,7 +263,7 @@ __gitcomp ()
 __gitcomp_nl ()
 {
 	local IFS=$'\n'
-	COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$1" -- "${3-$cur}"))
+	__gitcompadd "$1" "${2-}" "${3-$cur}" "${4- }"
 }
 
 __git_heads ()
@@ -1603,7 +1606,7 @@ _git_config ()
 		local remote="${prev#remote.}"
 		remote="${remote%.fetch}"
 		if [ -z "$cur" ]; then
-			COMPREPLY=("refs/heads/")
+			__gitcompadd "refs/heads/"
 			return
 		fi
 		__gitcomp_nl "$(__git_refs_remotes "$remote")"
-- 
1.8.0

  parent reply	other threads:[~2012-11-17  1:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-17  1:38 [RFC/PATCH 0/5] completion: compgen/compadd cleanups Felipe Contreras
2012-11-17  1:38 ` [RFC/PATCH 1/5] completion: get rid of empty COMPREPLY assignments Felipe Contreras
2012-11-17  1:38 ` Felipe Contreras [this message]
2012-11-17  1:38 ` [RFC/PATCH 3/5] completion: trivial test improvement Felipe Contreras
2012-11-17 10:59   ` SZEDER Gábor
2012-11-17  1:38 ` [RFC/PATCH 4/5] completion: get rid of compgen Felipe Contreras
2012-11-17 11:00   ` SZEDER Gábor
2012-11-17 11:42     ` Felipe Contreras
2012-11-17 14:12       ` SZEDER Gábor
2012-11-17 19:33         ` Felipe Contreras
2012-11-18  0:53           ` Felipe Contreras
2012-11-17  1:38 ` [RFC/PATCH 5/5] completion: refactor __gitcomp_1 Felipe Contreras
2012-11-17 10:58   ` SZEDER Gábor
2012-11-17 11:27     ` Felipe Contreras
2012-11-17 14:13       ` SZEDER Gábor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1353116298-11798-3-git-send-email-felipe.contreras@gmail.com \
    --to=felipe.contreras@gmail.com \
    --cc=bgustavsson@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=peff@peff.net \
    --cc=peter@avirtualhome.com \
    --cc=robert.a.zeh@gmail.com \
    --cc=spearce@spearce.org \
    --cc=szeder@ira.uka.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.