Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Possible bug in zargs
- X-seq: zsh-workers 30768
- From: Dima Kogan <zsh@xxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: Re: Possible bug in zargs
- Date: Tue, 30 Oct 2012 00:05:36 -0700
- Dkim-signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=date:from:to:subject:message-id :in-reply-to:references:mime-version:content-type; s=smtpout; bh=Qe1q2U2duqT4e6vOxDRoOZwo8+Y=; b=fzgWI0suvSFhBD7pmA0Jgp9/5ZTc 57scq7ivuo3MaG6NvEdrHRVevKy4GAIjS080y83e2/53WO0TbMq30nB/L0ojQNoN E7efiSnzhaoensGyTWJC4Ks0cNaA9sgPE8yMzj2h43OgpDvWJl+5SHaKskcGiohl xe55i6KUkU1vj8Q=
- In-reply-to: <20121027153400.77571174@shorty.local>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <20121027153400.77571174@shorty.local>
> On Sat, 27 Oct 2012 15:34:00 -0700
> Dima Kogan <zsh@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> I can't seem to get the -n option in zargs to work right. This looks like a bug
> to me, but maybe I'm not using it correctly:
>
> dima@shorty:/tmp$ ls -l
> total 12
> -rw-r--r-- 1 dima dima 1 Oct 27 15:29 1
> -rw-r--r-- 1 dima dima 5 Oct 27 15:29 2
> -rw-r--r-- 1 dima dima 5 Oct 27 15:29 3
>
>
> dima@shorty:/tmp$ zargs -- * -- ls -l
> -rw-r--r-- 1 dima dima 1 Oct 27 15:29 1
> -rw-r--r-- 1 dima dima 5 Oct 27 15:29 2
> -rw-r--r-- 1 dima dima 5 Oct 27 15:29 3
>
> dima@shorty:/tmp$ zargs -- * -- ls
> 1 2 3
>
> dima@shorty:/tmp$ zargs -n1 -- * -- ls
> 1
> 2
> 3
>
> dima@shorty:/tmp$ zargs -n1 -- * -- ls -l
> zargs: argument list too long
Attached is a patch that fixes this. There was some misbehaving logic in the
script. I don't understand why that logic was ever necessary. Does anybody know
why the value of $n was connected to the value of $c at all?
From b2d0722f78ce1c8effd69119b989a9112cbf5d27 Mon Sep 17 00:00:00 2001
From: Dima Kogan <dima@xxxxxxxxxxxxxxx>
Date: Tue, 30 Oct 2012 00:02:45 -0700
Subject: [PATCH] -n option of zargs now works correctly
Before this patch, the following wouls happen:
dima@shorty:/tmp$ ls
1 2 3
dima@shorty:/tmp$ zargs -n1 -- * -- ls -l
zargs: argument list too long
---
Functions/Misc/zargs | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/Functions/Misc/zargs b/Functions/Misc/zargs
index 71fd428..59b369e 100644
--- a/Functions/Misc/zargs
+++ b/Functions/Misc/zargs
@@ -212,20 +212,13 @@ then
fi
fi
-n=${${n##-(n|-max-args(=|))}:-$[ARGC+c]}
+n=${${n##-(n|-max-args(=|))}:-$[ARGC]}
if (( n <= 0 ))
then
print -u2 'zargs: value for max-args must be >= 1'
return 1
fi
-if (( n > c ))
-then (( n -= c ))
-else
- print -u2 zargs: argument list too long
- return 1
-fi
-
s=${${s##-(s|-max-chars(=|))}:-20480}
if (( s <= 0 ))
then
--
1.7.10.4
Messages sorted by:
Reverse Date,
Date,
Thread,
Author