From 5e2fe3ca18887063f02a677baeb35eb669dec7eb Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 12 Apr 2012 18:45:59 +0000 Subject: 30388, 30389 (Stephane): zargs: handle zero-length arguments. --- Functions/Misc/zargs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'Functions') diff --git a/Functions/Misc/zargs b/Functions/Misc/zargs index 8350b1aba..71fd42835 100644 --- a/Functions/Misc/zargs +++ b/Functions/Misc/zargs @@ -167,14 +167,14 @@ if [[ $eof == -(e|-eof) ]]; then ((end=ARGC+1)) elif (( $#eof )); then end=$argv[(i)${eof##-(e|-eof=)}] else end=$argv[(i)--] fi -local -a args call command; command=( ${argv[end+1,-1]} ) +local -a args call command; command=( "${(@)argv[end+1,-1]}" ) if (( $opts[(I)-(null|0)] )) -then set -- ${(ps:\000:)argv[1,end-1]} -else set -- $argv[1,end-1] +then set -- "${(@ps:\000:)argv[1,end-1]}" +else set -- "${(@)argv[1,end-1]}" fi -if [[ -n $command ]] +if (( $#command )) then (( c = $#command - 1 )) else command=( print -r -- ) fi @@ -187,7 +187,7 @@ local execute=' then print -u2 -r -- "$call" fi eval "{ - \$call + \"\${(@)call}\" } $bg"' local ret=0 analyze=' case $? in @@ -275,11 +275,11 @@ do ((ARGC)) || break for (( end=l; end && ${(c)#argv[1,end]} > s; end/=2 )) { } (( end > n && ( end = n ) )) - args=( $argv[1,end] ) + args=( "${(@)argv[1,end]}" ) shift $((end > ARGC ? ARGC : end)) if (( $#i )) - then call=( ${command/$i/$args} ) - else call=( $command $args ) + then call=( "${(@)command/$i/$args}" ) + else call=( "${(@)command}" "${(@)args}" ) fi if (( ${(c)#call} > s )) then -- cgit 1.4.1