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,UNPARSEABLE_RELAY
autolearn=ham autolearn_force=no version=3.4.4
Received: (qmail 10245 invoked from network); 26 Jul 2022 16:33:12 -0000
Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368)
by inbox.vuxu.org with ESMTPUTF8; 26 Jul 2022 16:33:12 -0000
ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1658853192;
b=KL1giCh0FYa1hASD6POnN8Pzh2FzUb5DhCDf1DCbpkqx5AuOf2yQAD0vKP8b97QSwyGaaUpGep
/RkOcB/frVfSy4GN+2sx/JibGdnIQWe1rRZiNhBhz2Zi1uTwovUbwSmgqJwIW3ZbEW9KIhzcBM
R88FZzeix/LZ7OIy4gutmXf+7yNb4vAuF6Nx6FAUJ5H3jQiJ/FHlgB0U7NmxnEbhUOXTlKTDz9
ypHXn/P3Fqj5eYFDRIv3jU5Fsk88wCiG1Rjpiqlp1/heMuzKCQgTzwfoACXnjYVX5Tdob2LfN+
xV19nh3UShJdKHw6OHvA2Ydq9zZi5FV+ep/KACrljK2IJw==;
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=1658853192;
bh=KGkNkeWJXsC3eB639bYTGJzwpjjOT1euXms4qMtP718=;
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=OLe6HHwMFooM14B5JLC/XjCDkEqnnWn3pl306K+9Cs8QnclD8ztIHnTVR7Jat22k1QYBPzKg2W
I2zVN1fjCO4vF0SZHDFbRjFOhLn/iGKlD0mvD3fxWnZgxTKM2wKRcwMVadChGWIjDiHox8dueX
eiyuodHjYzUsdPxCO9R9WV4dYI2YfDnCfXjguz0iMyfEsZnNCs/yaFEcaPvl0kdDY/wclPk7o1
BcsPJcb19m3AGENSal3NsEzteYuQICemmhyibGbRf1zRQrCwtrpUhqM6+0R+kgebCwBkr9FWbx
96ov+2Y0u0/CEIGY+XAnR63FgbDtVXqvPanB6qL1C1g+xQ==;
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=4Pn+En4PV6FvQGBC6DDaMSeQ3zeJo1P3RpfVI/kJzBg=; b=gpFByFoO6jBHW8rr5m9qvTI1JI
O2jJ7yPonaWOoqi7glkxmMzZHjSfG8UWBq852fgkWeU0giz9FaA9myaLV+z/0VwLDp/LoepPW6nnJ
6uuE8oDFmxH4Js0/SM8UsA4AzsdOTiH4unhgZaPKjYAK2SNkdDFqqI0P0gYKDYBMwk6dxwnnHdTEZ
88+fk+Bkj0EUsHsXX+5uFwNGk0nqZlw0ZNV7Ff70G+3QV9PKispCOjznFUR9joh/fFvZoua3qS2sf
kt+7ZCGaKHhwYv0Zi+CRZvDRMj4WfhAeR0PBW8ZOuT0sVfhiXC12CkrUKH3XSvhtMzfikvXZWIz3J
bw3LRysA==;
Received: from authenticated user by zero.zsh.org with local
id 1oGNUd-0006qK-W0;
Tue, 26 Jul 2022 16:33:12 +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]:60816)
by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
id 1oGNUO-0006VL-Pw;
Tue, 26 Jul 2022 16:32:57 +0000
Received: from [212.54.57.81] (helo=smtp2.tb.ukmail.iss.as9143.net)
by smtpq2.tb.ukmail.iss.as9143.net with esmtp (Exim 4.90_1)
(envelope-from
)
id 1oGNUO-0005Gz-Bd
for zsh-workers@zsh.org; Tue, 26 Jul 2022 18:32:56 +0200
Received: from oxbe20.tb.ukmail.iss.as9143.net ([172.25.160.151])
by smtp2.tb.ukmail.iss.as9143.net with ESMTP
id GNUOouhbjmIDmGNUOonRM7; Tue, 26 Jul 2022 18:32:56 +0200
X-Env-Mailfrom: p.w.stephenson@ntlworld.com
X-Env-Rcptto: zsh-workers@zsh.org
X-SourceIP: 172.25.160.151
X-CNFS-Analysis: v=2.4 cv=LoCBd1Rc c=1 sm=1 tr=0 ts=62e01738 cx=a_exe
a=Ip+kZtMD4PYul4iMASbA3A==:117 a=1DWFKdCB1IcA:10 a=IkcTkHD0fZMA:10
a=ZjyAdWuDOD4A:10 a=pGLkceISAAAA:8 a=770UL6LKWBxo_gpKlywA: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=1658853176;
bh=KGkNkeWJXsC3eB639bYTGJzwpjjOT1euXms4qMtP718=;
h=Date:From:To:In-Reply-To:References:Subject;
b=4PouxjihK4HMNY3xVun8foPGc9Koz7MZNYkwS+9vd4XWQUR29X5r0PyetezyDjL1v
SPTyv8wdEjh1C3+8MIzBq3FAZ2t16JSvAq+F6H+7mJNVgu+xHYruzjMqOMREU+2coc
eMp+r6l9rjzXW8sbmrzNW2cOBCr2ga/DE6mztyPUIW+b5AoePFbM0rJGT4YOHiPWAw
GIgxTp78Al3myQkYuZjDOfJmzy9mvY81yfz5h7FuNzE+MhikgTVh6SwQ5GYs/QyZpp
ZtpqAFVszKKGHMOF3o+c1AmKj55TND2YXJLieFfkrxR1kXTk85Cy2T5MamCPd7Xazk
TY38ny/npz4wQ==
Date: Tue, 26 Jul 2022 17:32:56 +0100 (BST)
From: Peter Stephenson
To: Zsh hackers list
Message-ID: <1174358605.42447.1658853176256@mail.virginmedia.com>
In-Reply-To:
References:
Subject: Re: [BUG] ksh_zero_subscript messes with associative arrays
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.224.167
X-Originating-Client: open-xchange-appsuite
X-CMAE-Envelope: MS4xfKh9uMHzZnTFBkwjgVfDVrXP+ITNHSBKSht1TRMGsXt9+Uo13/rJ6c6EcuEb1y98H6q9xaIP/tpFCXUVyzD1IMPsaz+McT2bRlQEBQOfXozrO9YUiSeH
e7XNb9R4T0r/JRLk3CT52el8wvU37q0JxgefR9ZTb45hpiVf0IY+Svt7o/sA7c0HAVVvGE21LjtY2BvQ+XLnxKFKGWICxJ/qGihZsxvBIggPhy7H88gdihYa
X-Seq: 50427
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 26/07/2022 17:18 Felipe Contreras wrote:
> The test is very simple:
>
> setopt ksh_zero_subscript
> typeset -A args
> (( $+args[foo] )) && echo set
>
> ksh_zero_subscript shouldn't be changing the behavior of the code, correct?
I can't see how it should be having any kind of effect on an associative array,
no
pws
diff --git a/Src/params.c b/Src/params.c
index 27ea82298..f587657c7 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -1996,7 +1996,8 @@ getindex(char **pptr, Value v, int flags)
* altered the start index in getarg().
* Are we being strict?
*/
- if (isset(KSHZEROSUBSCRIPT)) {
+ if (isset(KSHZEROSUBSCRIPT) &&
+ !(v->pm->node.flags & PM_HASHED)) {
/*
* We're not.
* Treat this as accessing the first element of the
diff --git a/Test/D06subscript.ztst b/Test/D06subscript.ztst
index adbd398c4..2546013a9 100644
--- a/Test/D06subscript.ztst
+++ b/Test/D06subscript.ztst
@@ -224,6 +224,11 @@
0:(R) yuckily returns the first element on failure with KSH_ZERO_SUBSCRIPT
>XfimbleX
+ typeset -A empty_hash
+ (( $+empty_hash[unset_param] )) || echo Entry is not set
+0:KSH_ZERO_SUBSCRIPT has no effect on hashes
+>Entry is not set
+
unsetopt KSH_ZERO_SUBSCRIPT
array[(R)notfound,(r)notfound]=(help help here come the seventies retreads)
print $array