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 22266 invoked from network); 16 Jan 2023 17:45:52 -0000
Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368)
by inbox.vuxu.org with ESMTPUTF8; 16 Jan 2023 17:45:52 -0000
ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1673891152;
b=b1YyltcsF/rIa1Jjf22ZUAphDFBttCn58tTOydtvhX2HfAV/Fkd2apw7FJaaMJCX26YTcKcE2/
fAI9JMaff2mimkc6BdYpGfyk7QgDAIGCbdSp9nP8KrOEXj33f+g2Du9XRH84YKwtLCWPaxvWXG
U+ZVjjGVB2L25SNWWgTZIXr6oG665JmsZpr/PwyWuRS2BukfVyx87F/gimUJ3/KrLXF66UBw4M
YG4N8oTrzDyFQAMY1/eGuSRK7xzI1sS4sNs2WntqWyyze9GWZAxev30oOj3A1JM0oKCH9B+I9I
174wcUPEbnLRJeFEUa0dpe4wl0XwZns0xczZ4+kHPIyWsA==;
ARC-Authentication-Results: i=1; zsh.org;
iprev=pass (smtpq1.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.96;
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=1673891152;
bh=whp0bPLEOe/FWZ2a0rYXpacyifEfM9mSHaAjOfOPs9o=;
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=G5jXHJ44HWh1jH6XiSX38qg+DnPw761P2quzhirShl2NdtcMy994Xjs7A+1zN/dOXbcsHUuuqM
JlXCrN3JvbW/Hl8gxkjFV7tJ0ygjbZwoThpH8itDp1IPtJ2ppT4dl9PB+EFH4VphqlryKRHl3/
AeoSM1lb7FfinfUc7xdy9JUFCIGHnIiK+ZgWT2NO/52c5hIg5yk5MlN4SXLx1BjB1hp+eNfWtG
yfLOpfJ/9LJWYGugTyKbH1QnbU/mhDa92yKn+QNiHEyYxkRGwwwsulHAKmlKZ9jOdOTjG81uiK
D3DZ/Gv/zxqyJau6Zo13ibTkuk+/m+nc8X+wt6m52OSf2w==;
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=28ynaQPjzdzGS0ADJDM/m2ZYscJtRVjp68mmDHtaZUM=; b=n721pPM7g5Ftf5EZkCxa3ROIX8
OUH0CAC11T/Fh2EIUSzHIy+tOB9EqrusuoGeoBIIO3RCfkh7Gg9NFNbRMmZGzu0/A5FpF+IOwm3wz
EupxiVM1l8qwIWGFB+EaJYxxC6KBeA5y8U3+rHZuWrH8/Ad0jqKaoKSVb5H+3SxYsLuvCarJImqYT
RHNqh1HiQyVcjtIK5LV7jD2HQ7StqHHJLxn1T/aRsuGxUGclv6mcHj4lBTuxVffT0aKx647jiG7TF
xN0MoCh2xbIFswHeEYaCGMMYvc2uPNZZxpkqxMtcTlNIjD13aSGnVCOdZVHfSRhvey3ruSlpiEFwf
rl6OMZgA==;
Received: by zero.zsh.org with local
id 1pHTYO-000HQe-2B;
Mon, 16 Jan 2023 17:45:52 +0000
Authentication-Results: zsh.org;
iprev=pass (smtpq1.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.96;
dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256;
dmarc=pass header.from=ntlworld.com;
arc=none
Received: from smtpq1.tb.ukmail.iss.as9143.net ([212.54.57.96]:53572)
by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
id 1pHTXq-000H86-6p;
Mon, 16 Jan 2023 17:45:19 +0000
Received: from [212.54.57.82] (helo=smtp3.tb.ukmail.iss.as9143.net)
by smtpq1.tb.ukmail.iss.as9143.net with esmtp (Exim 4.90_1)
(envelope-from
)
id 1pHTXp-0001Bl-Cf
for zsh-workers@zsh.org; Mon, 16 Jan 2023 18:45:17 +0100
Received: from oxbe21.tb.ukmail.iss.as9143.net ([172.25.160.152])
by smtp3.tb.ukmail.iss.as9143.net with ESMTP
id HTXopWYrmYBhJHTXppb0RF; Mon, 16 Jan 2023 18:45:17 +0100
X-Env-Mailfrom: p.w.stephenson@ntlworld.com
X-Env-Rcptto: zsh-workers@zsh.org
X-SourceIP: 172.25.160.152
X-CNFS-Analysis: v=2.4 cv=Vd8xfnl9 c=1 sm=1 tr=0 ts=63c58d2d cx=a_exe
a=I3kh1BFku3bnNore5KbC7A==:117 a=1DWFKdCB1IcA:10 a=IkcTkHD0fZMA:10
a=ZjyAdWuDOD4A:10 a=YR4_K0clAAAA:8 a=RfIwOu1XTbvel5nLhBAA:9 a=QEXdDO2ut3YA:10
a=waMAY2KAzxQUlx2gRwsv:22
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=1673891117;
bh=whp0bPLEOe/FWZ2a0rYXpacyifEfM9mSHaAjOfOPs9o=;
h=Date:From:To:In-Reply-To:References:Subject;
b=smIv1+IXWt7viW3qwe97STPpjc8Rmh364twBlJcOeCWDy35kRbqqRZKktl8hr+TXq
8eSc0TwzlGFtkVm7PCsOdWdLpGQu0PCuU+N0gCMloLUtYQ8174FgfNtPCiMdxraAxK
Z5zY+p8NnA4LdNl6mWI6z1xCOp0K3gbBYPJexlXlqkYt/2rmZdCC/4jrvdAEbs1e71
FXVoqsgF88WbKq+KuZrbUpfwW2/Fal/G1Nh8WOg7MvE9DBHhWdZqyDM1L3Wyyu6YTI
5TI66+XQ55h61ApDXPqR0flUFgY2A+qtmgFI/wPR+EqNGvMklxKrnGu7KR4EZ8Rk/x
VtQU/bb3TVXIA==
Date: Mon, 16 Jan 2023 17:45:16 +0000 (GMT)
From: Peter Stephenson
To: Vincent Lefevre , zsh-workers@zsh.org
Message-ID: <151772895.2018320.1673891116910@mail.virginmedia.com>
In-Reply-To: <20230116163829.GA3741240@cventin.lip.ens-lyon.fr>
References: <20230116163829.GA3741240@cventin.lip.ens-lyon.fr>
Subject: Re: bad error message "defining function based on alias"
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: MS4xfDu6paN3x1s0R2ejdqe+7Gm87ztosWwD7zPsW1JpHXAkSxEVFS3T+9iIzJjj5/l4PV7cBbHZqoMWrBO/c4QK1DlcOrt+xf2OQTzusepZjeA/DWM0Ciq/
rG4mBOeCGf0W8ihZ5x6q1npf91kACKpwx6tt3Y21rLNE4/H21O2p8UQf5kmaz5FXYfwIUVAPSaEkUY/5d52rzZaqdptAxkpAtoGuLrYsluoPmHNLpMfawlOL
bHfl+bGG+h8YasVadK25Ig==
X-Seq: 51307
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 16/01/2023 16:38 Vincent Lefevre wrote:
> cventin% alias foo=true
> cventin% alias bar=foo
> cventin% bar() { }
> zsh: defining function based on alias `foo'
> zsh: parse error near `()'
diff --git a/Src/input.c b/Src/input.c
index 5a612669b..0da065e51 100644
--- a/Src/input.c
+++ b/Src/input.c
@@ -816,6 +816,7 @@ char *input_hasalias(void)
{
int flags = inbufflags;
struct instacks *instackptr = instacktop;
+ char *alias_nam = NULL;
for (;;)
{
@@ -824,9 +825,9 @@ char *input_hasalias(void)
DPUTS(instackptr == instack, "BUG: continuation at bottom of instack");
instackptr--;
if (instackptr->alias)
- return instackptr->alias->node.nam;
+ alias_nam = instackptr->alias->node.nam;
flags = instackptr->flags;
}
- return NULL;
+ return alias_nam;
}
diff --git a/Src/parse.c b/Src/parse.c
index 283225b74..a07a6cc71 100644
--- a/Src/parse.c
+++ b/Src/parse.c
@@ -2055,6 +2055,9 @@ par_simple(int *cmplx, int nr)
if (isset(EXECOPT) && hasalias && !isset(ALIASFUNCDEF) && argc &&
hasalias != input_hasalias()) {
zwarn("defining function based on alias `%s'", hasalias);
+ herrflush();
+ if (noerrs != 2)
+ errflag |= ERRFLAG_ERROR;
YYERROR(oecused);
}
diff --git a/Test/A02alias.ztst b/Test/A02alias.ztst
index ca415fa39..1c6969e74 100644
--- a/Test/A02alias.ztst
+++ b/Test/A02alias.ztst
@@ -123,7 +123,12 @@
eval 'badalias() { print does not work; }')
1:ALIAS_FUNC_DEF off by default.
?(eval):1: defining function based on alias `badalias'
-?(eval):1: parse error near `()'
+
+ (alias firstalias=notacommand
+ alias secondalias=firstalias
+ eval 'secondalias() { print does not work either; }')
+1:ALIAS_FUNC_DEF reports original alias if multiple
+?(eval):1: defining function based on alias `secondalias'
(alias goodalias=isafunc
setopt ALIAS_FUNC_DEF