zsh-workers
 help / color / mirror / code / Atom feed
From: Dima Kogan <zsh@dima.secretsauce.net>
To: zsh-workers@zsh.org
Subject: Re: Possible bug in zargs
Date: Tue, 30 Oct 2012 00:05:36 -0700	[thread overview]
Message-ID: <20121030000536.260d4c15@shorty.local> (raw)
In-Reply-To: <20121027153400.77571174@shorty.local>

[-- Attachment #1: Type: text/plain, Size: 962 bytes --]

> On Sat, 27 Oct 2012 15:34:00 -0700
> Dima Kogan <zsh@dima.secretsauce.net> 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?

[-- Attachment #2: 0001-n-option-of-zargs-now-works-correctly.patch --]
[-- Type: text/x-patch, Size: 994 bytes --]

>From b2d0722f78ce1c8effd69119b989a9112cbf5d27 Mon Sep 17 00:00:00 2001
From: Dima Kogan <dima@secretsauce.net>
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


  reply	other threads:[~2012-10-30  7:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-27 22:34 Dima Kogan
2012-10-30  7:05 ` Dima Kogan [this message]
2012-10-30 16:09   ` Bart Schaefer
2012-10-30 17:53     ` Dima Kogan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121030000536.260d4c15@shorty.local \
    --to=zsh@dima.secretsauce.net \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).