mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-11 13:01:28 +02:00
18058: complete remote files for rcp
This commit is contained in:
parent
cd28eb9c71
commit
0e037e4d99
2 changed files with 37 additions and 1 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2003-01-07 Oliver Kiddle <opk@zsh.org>
|
||||||
|
|
||||||
|
* 18058: Completion/Unix/Command/_lsof, Completion/Unix/Command/_mt,
|
||||||
|
Completion/Unix/Command/_xsltproc, Completion/Unix/Command/_rlogin,
|
||||||
|
Completion/Unix/Command/_ssh, Completion/Unix/Command/_ant,
|
||||||
|
Completion/Unix/Command/.distfiles: new completions for lsof, mt and
|
||||||
|
xsltproc, complete remote files for rcp, allow multiple port
|
||||||
|
redirections with ssh and a typo correction in _ant
|
||||||
|
|
||||||
2002-12-18 Peter Stephenson <pws@csr.com>
|
2002-12-18 Peter Stephenson <pws@csr.com>
|
||||||
|
|
||||||
* 18015: Src/math.c: empty math parse e.g. $(( )) acts like a zero.
|
* 18015: Src/math.c: empty math parse e.g. $(( )) acts like a zero.
|
||||||
|
|
|
@ -1,5 +1,32 @@
|
||||||
#compdef rlogin rsh remsh=rsh rcp
|
#compdef rlogin rsh remsh=rsh rcp
|
||||||
|
|
||||||
|
_rcp_remote_files () {
|
||||||
|
# There should be coloring based on all the different ls -F classifiers.
|
||||||
|
local expl remfiles remdispf remdispd suf ret=1
|
||||||
|
|
||||||
|
if zstyle -T ":completion:${curcontext}:" remote-access; then
|
||||||
|
remfiles=(${(M)${(f)"$(rsh ${words[CURRENT]%%:*} ls -d1F ${PREFIX%%[^./][^/]#}\* 2>/dev/null)"}%%[^/]#(|/)})
|
||||||
|
compset -P '*/'
|
||||||
|
compset -S '/*' || suf='remote file'
|
||||||
|
|
||||||
|
remdispf=(${remfiles:#*/})
|
||||||
|
remdispd=(${(M)remfiles:#*/})
|
||||||
|
|
||||||
|
_tags files
|
||||||
|
while _tags; do
|
||||||
|
while _next_label files expl ${suf:-remote directory}; do
|
||||||
|
[[ -n $suf ]] && compadd "$@" "$expl[@]" -d remdispf \
|
||||||
|
${remdispf%[*=@|]} && ret=0
|
||||||
|
compadd ${suf:+-S/} "$@" "$expl[@]" -d remdispd \
|
||||||
|
${remdispd%/} && ret=0
|
||||||
|
done
|
||||||
|
(( ret )) || return 0
|
||||||
|
done
|
||||||
|
else
|
||||||
|
_message -e remote-files 'remote file'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
_rlogin () {
|
_rlogin () {
|
||||||
case "$service" in
|
case "$service" in
|
||||||
rlogin)
|
rlogin)
|
||||||
|
@ -38,7 +65,7 @@ _rlogin () {
|
||||||
|
|
||||||
if [[ -n "$state" ]]; then
|
if [[ -n "$state" ]]; then
|
||||||
if compset -P '*:'; then
|
if compset -P '*:'; then
|
||||||
_files && ret=0
|
_rcp_remote_files && ret=0
|
||||||
elif compset -P '*@'; then
|
elif compset -P '*@'; then
|
||||||
_wanted hosts expl host _rlogin_hosts -S: && ret=0
|
_wanted hosts expl host _rlogin_hosts -S: && ret=0
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue