summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBart Schaefer <barts@users.sourceforge.net>2009-04-30 18:02:08 +0000
committerBart Schaefer <barts@users.sourceforge.net>2009-04-30 18:02:08 +0000
commit7125514c462ac366ca0c6ed0d2f15b4d4ad4a79a (patch)
treed79b0d6d06d031f7d967a109a9bf7f0c8384d7a7
parentd853f4cd120630c67eb653b7451441177345d201 (diff)
downloadzsh-7125514c462ac366ca0c6ed0d2f15b4d4ad4a79a.tar.gz
zsh-7125514c462ac366ca0c6ed0d2f15b4d4ad4a79a.zip
users/14076 + workers/26906: Completion/Unix/Command/_ssh: fix autoremoval
of some suffixes.
-rw-r--r--ChangeLog9
-rw-r--r--Completion/Unix/Command/_ssh10
2 files changed, 13 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 7324648cf..b1c551a15 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-04-30 Barton E. Schaefer <schaefer@zsh.org>
+
+ * users/14076 (tweaked per 26906): Completion/Unix/Command/_ssh:
+ Add -q or -r: options to some compadd argument lists to properly
+ handle suffix removal when completing ssh option names or remote
+ host references in file names.
+
2009-04-30 Peter Stephenson <pws@csr.com>
* c.f. 26895: Test/D07/multibyte.ztst: restrict the sorting test
@@ -11644,5 +11651,5 @@
*****************************************************
* This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.4674 $
+* $Revision: 1.4675 $
*****************************************************
diff --git a/Completion/Unix/Command/_ssh b/Completion/Unix/Command/_ssh
index bc207bfd9..b7b407e2f 100644
--- a/Completion/Unix/Command/_ssh
+++ b/Completion/Unix/Command/_ssh
@@ -228,7 +228,7 @@ _ssh () {
esac
else
_wanted values expl 'configure file option' \
- compadd -M 'm:{a-z}={A-Z}' -S '=' - \
+ compadd -M 'm:{a-z}={A-Z}' -qS '=' - \
AddressFamily \
AFSTokenPassing BatchMode BindAddress \
ChallengeResponseAuthentication CheckHostIP \
@@ -294,12 +294,12 @@ _ssh () {
_remote_files ${(kv)~opt_args[(I)-[FP1246]]/-P/-p} && ret=0
elif compset -P '*@'; then
suf=( -S '' )
- compset -S ':*' || suf=( -S : )
+ compset -S ':*' || suf=( -r: -S: )
_wanted hosts expl 'remote host name' _ssh_hosts $suf && ret=0
else
_alternative \
'files:: _files' \
- 'hosts:remote host name:_ssh_hosts -S:' \
+ 'hosts:remote host name:_ssh_hosts -r: -S:' \
'users:user:_ssh_users -qS@' && ret=0
fi
;;
@@ -307,10 +307,10 @@ _ssh () {
if compset -P '*:'; then
_remote_files && ret=0
elif compset -P '*@'; then
- _wanted hosts expl host _ssh_hosts -S: && ret=0
+ _wanted hosts expl host _ssh_hosts -r: -S: && ret=0
else
_alternative \
- 'hosts:remote host name:_ssh_hosts -S:' \
+ 'hosts:remote host name:_ssh_hosts -r: -S:' \
'users:user:_ssh_users -qS@' && ret=0
fi
;;