diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-10 13:57:31 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-10 13:57:31 +0000 |
commit | b67e4abb100f67ca05809baab37700eb5ee0a342 (patch) | |
tree | f19c7eb1544bd6071e01155825a7aae3cc99117d /Functions/Zftp/zfgcp | |
parent | bc3256997b737f6158e9768dcf5738a7c0fbb454 (diff) | |
download | zsh-b67e4abb100f67ca05809baab37700eb5ee0a342.tar.gz zsh-b67e4abb100f67ca05809baab37700eb5ee0a342.tar.xz zsh-b67e4abb100f67ca05809baab37700eb5ee0a342.zip |
manual/7767
Diffstat (limited to 'Functions/Zftp/zfgcp')
-rw-r--r-- | Functions/Zftp/zfgcp | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/Functions/Zftp/zfgcp b/Functions/Zftp/zfgcp index 26a08697d..916a5f7b6 100644 --- a/Functions/Zftp/zfgcp +++ b/Functions/Zftp/zfgcp @@ -16,30 +16,16 @@ emulate -L zsh -local opt optlist nglob remlist rem loc time +local opt remlist rem loc opt_G opt_t integer stat do_close -while [[ $1 == -* ]]; do - if [[ $1 == - || $1 == -- ]]; then - shift; - break; - fi - optlist=${1#-} - for (( i = 1; i <= $#optlist; i++)); do - opt=$optlist[$i] - case $opt in - G) nglob=1 - ;; - t) time=1 - ;; - *) print option $opt not recognised >&2 - ;; - esac - done - shift +while getopts :Gt opt; do + [[ $opt = '?' ]] && print "zfgcp: bad option: -$OPTARG" >&2 && return 1 + eval "opt_$opt=1" done +(( OPTIND > 1 )) && shift $(( OPTIND - 1 )) -zfautocheck +zfautocheck || return 1 # hmm, we should really check this after expanding the glob, # but we shouldn't expand the last argument remotely anyway. @@ -59,14 +45,14 @@ if [[ -d $argv[-1] ]]; then if [[ $remlist = $HOME || $remlist = $HOME/* ]]; then remlist="~${remlist#$HOME}" fi - if [[ $nglob != 1 ]]; then + if [[ $opt_G != 1 ]]; then zfrglob remlist fi if (( $#remlist )); then for rem in $remlist; do loc=$dir/${rem:t} if zftp get $rem >$loc; then - [[ $time = 1 ]] && zfrtime $rem $loc + [[ $opt_t = 1 ]] && zfrtime $rem $loc else stat=1 fi @@ -74,6 +60,9 @@ if [[ -d $argv[-1] ]]; then fi done else + if [[ $1 = $HOME || $1 = $HOME/* ]]; then + 1="~${1#$HOME}" + fi zftp get $1 >$2 || stat=$? fi |