From 206237c8ec4b7619d9e70a75004cd1ae1066b0a0 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Sun, 25 Apr 1999 15:43:41 +0000 Subject: zsh-3.1.5-pws-16 --- Functions/Zftp/zfcd_match | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Functions/Zftp/zfcd_match (limited to 'Functions/Zftp/zfcd_match') diff --git a/Functions/Zftp/zfcd_match b/Functions/Zftp/zfcd_match new file mode 100644 index 000000000..67e719888 --- /dev/null +++ b/Functions/Zftp/zfcd_match @@ -0,0 +1,42 @@ +# function zfcd_match { + +emulate -L zsh + +# see zfcd for details of this hack +if [[ $1 = $HOME || $1 = $HOME/* ]]; then + 1="~${1#$HOME}" +fi + +# error messages only +local ZFTP_VERBOSE=45 +# should we redirect 2>/dev/null or let the user see it? + +local tmpf=${TMPPREFIX}zfcm$$ + +if [[ $ZFTP_SYSTEM = UNIX* ]]; then + # hoo, aren't we lucky: this makes things so much easier + setopt localoptions rcexpandparam + local dir + if [[ $1 = ?*/* ]]; then + dir=${1%/*} + elif [[ $1 = /* ]]; then + dir=/ + fi + # If we're using -F, we get away with using a directory + # to list, but not a glob. Don't ask me why. + # I hate having to rely on awk here. + zftp ls -F $dir >$tmpf + reply=($(awk '/\/$/ { print substr($1, 0, length($1)-1) }' $tmpf)) + rm -f $tmpf + if [[ $dir = / ]]; then + reply=(${dir}$reply) + elif [[ -n $dir ]]; then + reply=($dir/$reply) + fi +else + # I simply don't know what to do here. + # Just use the list of files for the current directory. + zfget_match $* +fi + +# } -- cgit 1.4.1