From 89acac9910a27cc9428314e66c3bdbfc48c65f41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ita=C3=AF=20BEN=20YAACOV?= Date: Fri, 15 Jun 2012 19:16:14 +0300 Subject: [PATCH] scp: Recognise symlinks to directories as directories (Debian: #666055). When auto-completing an scp command, slashes are added after (local or remote) directories, and spaces after files AND after symlinks to directories. Expected behaviour would be slashes after directories or symlinks to such. --- completions/ssh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/completions/ssh b/completions/ssh index a18ba494..5cd03b97 100644 --- a/completions/ssh +++ b/completions/ssh @@ -266,13 +266,13 @@ _scp_remote_files() if [[ $1 == -d ]]; then # escape problematic characters; remove non-dirs files=$( ssh -o 'Batchmode yes' $userhost \ - command ls -aF1d "$path*" 2>/dev/null | \ + command ls -aF1dL "$path*" 2>/dev/null | \ sed -e 's/'$_scp_path_esc'/\\\\\\&/g' -e '/[^\/]$/d' ) else # escape problematic characters; remove executables, aliases, pipes # and sockets; add space at end of file names files=$( ssh -o 'Batchmode yes' $userhost \ - command ls -aF1d "$path*" 2>/dev/null | \ + command ls -aF1dL "$path*" 2>/dev/null | \ sed -e 's/'$_scp_path_esc'/\\\\\\&/g' -e 's/[*@|=]$//g' \ -e 's/[^\/]$/& /g' ) fi @@ -294,10 +294,10 @@ _scp_local_files() fi if $dirsonly ; then - COMPREPLY+=( $( command ls -aF1d $cur* 2>/dev/null | \ + COMPREPLY+=( $( command ls -aF1dL $cur* 2>/dev/null | \ sed -e "s/$_scp_path_esc/\\\\&/g" -e '/[^\/]$/d' -e "s/^/$1/") ) else - COMPREPLY+=( $( command ls -aF1d $cur* 2>/dev/null | \ + COMPREPLY+=( $( command ls -aF1dL $cur* 2>/dev/null | \ sed -e "s/$_scp_path_esc/\\\\&/g" -e 's/[*@|=]$//g' \ -e 's/[^\/]$/& /g' -e "s/^/$1/") ) fi