From mboxrd@z Thu Jan 1 00:00:00 1970
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org
X-Spam-Level:
X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,
DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham
autolearn_force=no version=3.4.4
Received: (qmail 12127 invoked from network); 6 Jan 2023 17:23:56 -0000
Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368)
by inbox.vuxu.org with ESMTPUTF8; 6 Jan 2023 17:23:56 -0000
ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1673025836;
b=nfnBW1sbsBSGzCO1/39l5R4LrMqO4d04MydqUL9UD7W6jVNkpIkczyOHj66wFGDwSRCKFnbh1+
duRTMpGmBH+kK73IlVTIe0dShRFeoczypkBIuaOWe21zITnpfYHtDauPEzsB8xd5U4psdrdIm2
ndAlQ9QkS3eZabXzmOck6Cf6gygTuQzvKhJQ6j59NvuCeltO/BMXKozs7yKunSHjCJzBohyWPx
XrxvylXJg+sfyXdzCTv9/HGKb4BGvgnlY0qK+bG8r058mIvfbXQNSZpSrOQXgkv3hMvGt78E54
ABAe+hjpNB/HkMNFdsEPKtjdwD/OhlWt1gnK5UoWzqmxvQ==;
ARC-Authentication-Results: i=1; zsh.org;
iprev=pass (smtpq2.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.97;
dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256;
dmarc=pass header.from=ntlworld.com;
arc=none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1673025836;
bh=lKzPqwN7h9bEn9hjWgfknjdYXZlJgLjkQS/UjdfJNqc=;
h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help:
List-Id:Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:
References:In-Reply-To:Message-ID:To:From:Date:DKIM-Signature:
DKIM-Signature;
b=iIXb7mgtmuTSbrzldxiBRlr5AeJqSWL46K0YnLnEREFgW4tHG6AghRKgdJW7LVxv/JsRg1ZA3P
WfgxBIpSR3ryC68rx+eB2TZ5p8jyjMm0liWTennx0VzBpOj2IpTqa2nv2PIwM2iR7ZpjJMe37P
rB//EFZM3Ikps3zigBnJb+KMQrYz2rm7fhQ1W+XjIZg70/Mq8ztWniVZzJ6PjjuCFA5GgUxEba
X4MHPJr5H0+4RTfemiyS3Z3udi67kvsCOhwjN4OW907U6VXFOJLhfSrDXHd8RNULj1vOGts7Tu
GmpNfFWOlZstueTvH0UnSxIxgumVzDrpaYk2wJeEh5ifmg==;
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org;
s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:
List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding:
Content-Type:MIME-Version:Subject:References:In-Reply-To:Message-ID:To:From:
Date:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From:
Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID;
bh=SFHwRDzq2CBIp0qZg4k2MIwMRZQKPUxHHbevZS+tZ7Q=; b=YLItDHDgq5FjhM5qBxB3g10IC3
6QT42U/gnULQJMQuLPb5ewy0CrVTX0Ru5lhMdvUexfw4EvIjhj7MvnE/DU2SCjrj4Q/Nw4lFBJJdY
ZVq4kYbJ1PB95Q9Lf7dcibMvR+nrJxBzZe62UvtOliKu1Nkk7Hy8XV7tXSNeS9hIpr5jYz6SQYkfW
ydKpyWEThl4gsRWXszl6TErI/JGgu19q82kyHCwGX+WLp64qoDABMik9Kgof7ndk01VZC5L44oMp1
RH37fuYsiJFq6yJTc1oEQ0gK2QAqa1H256t6oWlq/MtpslDVUVaGiTXcQOr33fb4jzF39y8Uqa8Cc
jS+mU9aw==;
Received: by zero.zsh.org with local
id 1pDqRf-000OEr-O3;
Fri, 06 Jan 2023 17:23:55 +0000
Authentication-Results: zsh.org;
iprev=pass (smtpq2.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.97;
dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256;
dmarc=pass header.from=ntlworld.com;
arc=none
Received: from smtpq2.tb.ukmail.iss.as9143.net ([212.54.57.97]:58172)
by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
id 1pDqR6-000NwB-CL;
Fri, 06 Jan 2023 17:23:21 +0000
Received: from [212.54.57.82] (helo=smtp3.tb.ukmail.iss.as9143.net)
by smtpq2.tb.ukmail.iss.as9143.net with esmtp (Exim 4.90_1)
(envelope-from
)
id 1pDqR5-0000GP-VL
for zsh-workers@zsh.org; Fri, 06 Jan 2023 18:23:20 +0100
Received: from oxbe15.tb.ukmail.iss.as9143.net ([172.25.160.146])
by smtp3.tb.ukmail.iss.as9143.net with ESMTP
id DqR5pIKMxYBhJDqR5pMBKG; Fri, 06 Jan 2023 18:23:19 +0100
X-Env-Mailfrom: p.w.stephenson@ntlworld.com
X-Env-Rcptto: zsh-workers@zsh.org
X-SourceIP: 172.25.160.146
X-CNFS-Analysis: v=2.4 cv=Vd8xfnl9 c=1 sm=1 tr=0 ts=63b85907 cx=a_exe
a=3VDdwIuOneLoWcGUQKPbfw==:117 a=8QvskaeBrsgA:10 a=IkcTkHD0fZMA:10
a=VEAUHPWEz7YA:10 a=pGLkceISAAAA:8 a=5RYW5F2dqqIUF4uILScA:9 a=QEXdDO2ut3YA:10
X-Authenticated-Sender: p.w.stephenson@ntlworld.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ntlworld.com;
s=meg.feb2017; t=1673025799;
bh=lKzPqwN7h9bEn9hjWgfknjdYXZlJgLjkQS/UjdfJNqc=;
h=Date:From:To:In-Reply-To:References:Subject;
b=InReNX/Tx4iYvteX1uw+TyZwnQ5GXFhcFF0WsIGRqpXDDWvK+azrx4Z8NTkWzh8ZP
fa9nMawpqYzasji+uc5iFvTkLIF1y2OdqiQKU1Kuwr/58a1SSOVTw1up0ve02cHM+g
4JHa8/zV0dYpnfNgcxkK03UkTHJAAQpF2/lp+4XHxLc208HXoZgZ/gxyxO5mE2z0AB
WJ+R3wbP3qrYoYkvrGC8E9si86NeyGQSfUaBNjO2MOBjlKGck5xnhhyncOTrNPWxkT
tpjsZ+BIlS2v/sa2X+ucd0JkUNEkudO/uCk0vgKNjdfv0wTf6WqZbRB2nJk9zE1E48
/D9wj28bl92BA==
Date: Fri, 6 Jan 2023 17:23:19 +0000 (GMT)
From: Peter Stephenson
To: Philippe Altherr ,
Zsh hackers list
Message-ID: <361494476.8470860.1673025799682@mail.virginmedia.com>
In-Reply-To:
References:
Subject: Re: Subscript flag (i) not working correctly on empty strings?
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Priority: 3
Importance: Normal
X-Mailer: Open-Xchange Mailer
X-Originating-IP: 147.161.225.104
X-Originating-Client: open-xchange-appsuite
X-CMAE-Envelope: MS4xfEkrucrgLzsbw1DhTBWPN13cFrmAEVUpz8cmJVcH1ubK37J0HoZwb6/35EttWQ+ozd32IHMQ6YP5N21zw3NDC6XSwuml3vP5gFLrg2Em79hwQyV/3Ehp
bhmHD8Gga9/Zb3Yu7H1mPIsDrKj1fGlvJ0cJTRnd4h5DjIpXkLxM6frC47OPo3a4yu9iU0/UyaNYpdr0VasNBOg2DxyCMXSHJwdyapgURKCs+QgamfONU8Ft
psEBUFmVUFspVHU0oSJBYHolBVpxf5/PjfTwAZIPvC4=
X-Seq: 51278
Archived-At:
X-Loop: zsh-workers@zsh.org
Errors-To: zsh-workers-owner@zsh.org
Precedence: list
Precedence: bulk
Sender: zsh-workers-request@zsh.org
X-no-archive: yes
List-Id:
List-Help: ,
List-Subscribe: ,
List-Unsubscribe: ,
List-Post:
List-Owner:
List-Archive:
> On 06/01/2023 16:01 Philippe Altherr wrote:
> The following script
>
> > s=aaa; echo $s[(i)z];
> > s=aa; echo $s[(i)z];
> > s=a; echo $s[(i)z];
> > s=; echo $s[(i)z];
>
> prints this
>
> > 4
> > 3
> > 2
> > 0
>
> Why is the last line 0 and not 1?
Certainly looks plain wrong. From the source it appears to be
an overzealous safety test --- if we get a NULL value, we should
give up trying to search the string, but not if we get an empty
string.
None of the existing tests fail with this change.
pws
diff --git a/Src/params.c b/Src/params.c
index 2e4a6eae2..6362b382c 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -1669,7 +1669,7 @@ getarg(char **str, int *inv, Value v, int a2, zlong *w,
/* Searching characters */
int slen;
d = getstrvalue(v);
- if (!d || !*d)
+ if (!d)
return 0;
/*
* beg and len are character counts, not raw offsets.
diff --git a/Test/D06subscript.ztst b/Test/D06subscript.ztst
index 21127e641..57cdc027c 100644
--- a/Test/D06subscript.ztst
+++ b/Test/D06subscript.ztst
@@ -299,3 +299,12 @@ F:In math, (($i)) should be the same as ((i)), see workers/47748.
echo ${string[(pws:\0:)1]}
0:Word splitting by NUL
>foo
+
+ string="a"
+ print ${string[(i)x]}
+ string=""
+ print ${string[(i)x]}
+0:Can check off end of zero length string
+F:Regression test for inconsistency of failed (i) on zero-length string
+>2
+>1