From: Shawn O. Pearce Date: Thu, 24 Apr 2008 01:21:29 GMT Subject: [PATCH] bash completion only provides revs, not paths Message-ID: <20080424012129.GU29771@spearce.org> In-Reply-To: <20080423055637.GA25446@digi.com> Uwe Kleine-Knig wrote: > > How is this? > > I like it and have already applied it. ... > > Suggested-by: Uwe Kleine-Knig > > There is a letter missing in my name. I wonder why it's always the only > non-ascii one :-) Damn. I'm sorry. My mailer seems to be dropping it when I quote you, and I copied your name from the "... wrote:" line at the top of my message. I should have copied from the To: header, where it hasn't been munged. Fixed commit message below. --8<-- bash completion: Completely only path names after -- in options If the user has inserted a -- before the current argument we are being asked to complete they are most likely trying to force Git into treating this argument as a path name, and not as a ref. We should allow bash to complete it as a path from the local working directory. Tested-by: Uwe Kleine-König Signed-off-by: Shawn O. Pearce --- contrib/completion/git-completion.bash | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 0f5d30c..8d8405e 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -308,7 +308,20 @@ __git_complete_file () __git_complete_revlist () { - local pfx cur="${COMP_WORDS[COMP_CWORD]}" + local c=1 pfx cur + + while [ $c -lt $COMP_CWORD ]; do + cur="${COMP_WORDS[c]}" + case "$cur" in + --) + COMPREPLY=() + return + ;; + esac + c=$((++c)) + done + + cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in *...*) pfx="${cur%...*}..." -- 1.5.5.1.141.gd55b -- Shawn.