aboutsummaryrefslogtreecommitdiffhomepage
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/completions/gpg.fish14
1 files changed, 12 insertions, 2 deletions
diff --git a/share/completions/gpg.fish b/share/completions/gpg.fish
index 5010be08..90e8f67e 100644
--- a/share/completions/gpg.fish
+++ b/share/completions/gpg.fish
@@ -23,12 +23,22 @@ function __fish_complete_gpg_user_id -d "Complete using gpg user ids"
# gpg doesn't seem to like it when you use the whole key name as a
# completion, so we skip the <EMAIL> part and use it a s a
# description.
- gpg --list-keys --with-colon|cut -d : -f 10|sed -ne 's/\(.*\) <\(.*\)>/\1'\t'\2/p'
+ # It also replaces colons with \x3a
+ gpg --list-keys --with-colon|cut -d : -f 10 | sed -ne 's/\\\x3a/:/g' -e 's/\(.*\) <\(.*\)>/\1'\t'\2/p'
end
function __fish_complete_gpg_key_id -d 'Complete using gpg key ids'
# Use user_id as the description
- gpg --list-keys --with-colons|cut -d : -f 5,10|sed -ne "s/\(.*\):\(.*\)/\1'\t'\2/p"
+ set -l lastid
+ gpg --list-keys --with-colons | while read garbage
+ switch $garbage
+ case "uid*"
+ echo $garbage | cut -d ":" -f 10 | sed -e "s/\\\x3a/:/g" | read lastid
+ case "*"
+ echo $garbage | cut -d ":" -f 5 | read fingerprint
+ end
+ printf "%s\t%s\n" $fingerprint $lastid
+ end
end
function __fish_print_gpg_algo -d "Complete using all algorithms of the type specified in argv[1] supported by gpg. argv[1] is a regexp"