From 5d24f6d9aa6c1f0af5e3f28be0472546e5471f7e Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Wed, 7 Sep 2016 23:18:26 +0200 Subject: 39193 (cf. Yoshio Hanawa: 39192): don't pass options from after -- on to compadd --- Completion/Unix/Type/_remote_files | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'Completion') diff --git a/Completion/Unix/Type/_remote_files b/Completion/Unix/Type/_remote_files index db3316422..54bd438eb 100644 --- a/Completion/Unix/Type/_remote_files +++ b/Completion/Unix/Type/_remote_files @@ -28,16 +28,19 @@ # There should be coloring based on all the different ls -F classifiers. -local expl rempat remfiles remdispf remdispd args cmd cmd_args suf ret=1 +local expl rempat remfiles remdispf remdispd args cmd suf ret=1 +local -a args cmd_args local glob host if zstyle -T ":completion:${curcontext}:files" remote-access; then # Parse options to _remote_files. Stops at the first "--". zparseopts -D -E -a args / g:=glob h:=host - shift (( $#host)) && shift host || host="${IPREFIX%:}" + args=( ${argv[1,(I)--]} ) + shift ${#args} + args[-1]=() # Command to run on the remote system. cmd="$1" shift @@ -45,9 +48,9 @@ if zstyle -T ":completion:${curcontext}:files" remote-access; then # Handle arguments to ssh. if [[ $cmd == ssh ]]; then zparseopts -D -E -a cmd_args p: 1 2 4 6 F: - cmd_args="-o BatchMode=yes $cmd_args -a -x" + cmd_args=( -o BatchMode=yes "$cmd_args[@]" -a -x ) else - cmd_args="$@" + cmd_args=( "$@" ) fi if [[ -z $QIPREFIX ]] @@ -74,8 +77,8 @@ if zstyle -T ":completion:${curcontext}:files" remote-access; then while _tags; do while _next_label files expl ${suf:-remote directory}; do [[ -n $suf ]] && - compadd "$@" "$expl[@]" -d remdispf ${(q)remdispf%[*=|]} && ret=0 - compadd ${suf:+-S/} -r "/ \t\n\-" "$@" "$expl[@]" -d remdispd \ + compadd "$args[@]" "$expl[@]" -d remdispf ${(q)remdispf%[*=|]} && ret=0 + compadd ${suf:+-S/} -r "/ \t\n\-" "$args[@]" "$expl[@]" -d remdispd \ ${(q)remdispd%/} && ret=0 done (( ret )) || return 0 -- cgit 1.4.1