From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29575 invoked by alias); 2 Apr 2017 20:36:59 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 40930 Received: (qmail 6776 invoked from network); 2 Apr 2017 20:36:59 -0000 X-Qmail-Scanner-Diagnostics: from mail-qt0-f178.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.216.178):SA:0(-0.2/5.0):. Processed in 1.693507 secs); 02 Apr 2017 20:36:59 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RCVD_IN_SORBS_SPAM, SPF_PASS,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: mikachu@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.216.178 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=eK6kn+lAX+pKyY3tIj30gNV11mn83kPcahsCaI3b92U=; b=s8SgrzAK5mWd87ue1y7WqeO2khDtQLYc6Q3xh+p4tcfFMSDzG1Om4ahjXkUYBfImZd QZNB6A9q+nsiJDS/OuEv21Wv8oDsiJEBqIeo9YC5QBqMWF7hBvxjoKtjW3KyfWMlYx77 W7ecFHNbLmhMVgGB0pr6Fcp8MBexSnX2Y5cwdUKJyumj0KpgofrPH/MGDucqbX4PZzqu FqMJWCpuHqBuwmwavZSndPkRIg9aCucGWgve4rlKCRRPJGwZFqjqwauuKZTediczvhzp 2BTdjfZY4rQWJ8L7gf0n8oBJPk3ya/lhpVr/Kpc5NLIh3ZHD2apZZh06vmN7W9YexfxW n7rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=eK6kn+lAX+pKyY3tIj30gNV11mn83kPcahsCaI3b92U=; b=T9GSiiS7PoDVnb9V9qCdYFgCpsdb3UE+RjvasDYGYAAvoz+U2dhMIGl1/aR2QIxFJy xFE7FDmqsAdfxUuB1zhSSG9vB2OZifWr+QeIpb83XUd9VwsnLkeiSClv3nbbSpBR7HvM 5YybR79WFZVaV6xPXWEGVuXsEThPKVM12G+/1m98NFuBSIEO+9EIIKHS6ePGA/HV6yMX WrUCzAfMlHN5AZABbbQ3/+nRPCWGKHHXbMyYiAPIg+hRcoPkvGw8ZYoYYDC1o63SNrNV bOnfCX4pOZZAUXwKiBQpAf5o0SuYwfSjyukP81zatU3JavX0/QI4Wo4QTfctVCyUK8SY mwGg== X-Gm-Message-State: AFeK/H1rkMXO8yq5hiEA7qry1c1AhTUs9jcr1TUfIbYj5MjoWWQzeuC+uXwivoWD9Y7yB4vXp0MF5m2+4haJOA== X-Received: by 10.237.34.150 with SMTP id p22mr12756139qtc.66.1491165413076; Sun, 02 Apr 2017 13:36:53 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <170402115156.ZM27355@torch.brasslantern.com> References: <170402115156.ZM27355@torch.brasslantern.com> From: Mikael Magnusson Date: Sun, 2 Apr 2017 22:36:52 +0200 Message-ID: Subject: Re: Can't call multi-arg math function from array subscript To: Bart Schaefer Cc: zsh workers Content-Type: text/plain; charset=UTF-8 On Sun, Apr 2, 2017 at 8:51 PM, Bart Schaefer wrote: > Single-argument functions are OK: > > % string='abcde' > % onearg() { return $1 } > % functions -M onearg > % print ${string[1,onearg(3)] > abc > > Add another argument and strange things start happening: > > % twoarg() { return $(( $2 - $1 )) } > % functions -M twoarg > % print ${string[1,twoarg(1,4)]} > twoarg: bad math expression: operand expected at end of string > twoarg: bad math expression: operand expected at end of string > > Why two error messages? > > I assume the comma is messing things up; let's try it like this: > > % print ${string[1,$(( twoarg(1,4) ))]} > zsh: parse error > zsh: parse error > > Just to confirm: > > % print ${string[1,$(( onearg(4) ))]} > abcd I guess this basically confirms that the comma messes up parsing: % func='twoarg(1,4)' % print ${string[1,func]} abc -- Mikael Magnusson