diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2014-04-22 18:39:47 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2014-04-22 18:39:47 +0200 |
commit | f82e9d6cf3bc3a12bdfce89bf319d76f79e66efc (patch) | |
tree | e3944c57ab37ca09dda2711aaaa68b72aa8d0a8c | |
parent | 760c644a1d9f55c91b74521b112958966e00ea31 (diff) |
zsh-completion: only remove next char if /
From Kevin:
I found a small bug in the zsh completions. Basically when the
PASSWORD_STORE_DIR ends in a slash the first character of the
result is eaten, making completion essentially useless. (It does
this before determining matches).
This can be fixed by changing what is line 106 in my version from:
_values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name
.gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}.##" -e 's#\.gpg##'
| sort)
to
_values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name
.gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}/\\?##" -e
's#\.gpg##' | sort)
The difference is the first sed regex expression. The original
version assumed that the next character was a slash and removed
it while the new version only removes it if it is a slash.
"s#${prefix}.##" -> "s#${prefix}/\\?##"
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reported-by: Kevin Cox <kevincox@kevincox.ca>
-rw-r--r-- | src/completion/pass.zsh-completion | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/completion/pass.zsh-completion b/src/completion/pass.zsh-completion index 892d3de..4c7548c 100644 --- a/src/completion/pass.zsh-completion +++ b/src/completion/pass.zsh-completion @@ -1,11 +1,10 @@ #compdef pass #autoload -# Copyright (C) 2012: +# Copyright (C) 2012 - 2014: # Johan Venant <jvenant@invicem.pro> # Brian Mattern <rephorm@rephorm.com> # Jason A. Donenfeld <Jason@zx2c4.com>. -# Santiago Borrazás <sanbor@gmail.com> # All Rights Reserved. # This file is licensed under the GPLv2+. Please see COPYING for more information. @@ -111,7 +110,7 @@ _pass_cmd_show () { _pass_complete_entries_helper () { local IFS=$'\n' local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}" - _values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}.##" -e 's#\.gpg##' | sort) + _values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}/\\?##" -e 's#\.gpg##' | sort) } _pass_complete_entries_with_subdirs () { |