mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-13 05:28:49 +00:00
gpg: Fix key/user id completion
This was too simplistic, among other things it completed things that looked like key ids but weren't, didn't turn "\x3a" back into colons (which made the argument invalid).... gpg is weird. Might fix #2150
This commit is contained in:
parent
1271de321e
commit
2874650802
1 changed files with 12 additions and 2 deletions
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue