Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [PATCH] [long] typeset doesn't report tied parameters (and related issues)
- X-seq: zsh-workers 43655
- From: Peter Stephenson <p.stephenson@xxxxxxxxxxx>
- To: <zsh-workers@xxxxxxx>
- Subject: Re: [PATCH] [long] typeset doesn't report tied parameters (and related issues)
- Date: Tue, 9 Oct 2018 10:02:25 +0100
- Cms-type: 201P
- Dkim-filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20181009090228euoutp02fc619487a549bfe52c04a0b482741581~b5T06V1Gg2091820918euoutp02I
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1539075748; bh=96SfKCN4ZDQkwuxA2ndAQW3uxI1e7Tnobd3IV4Rw1OQ=; h=Subject:From:To:Date:In-Reply-To:References:From; b=HoWRzM8HZl6Mhe+br6Hs+SJlXZppgn9dP1aaqrIGNOhUjYrA/t5i6HSwpYNhO03Fc LInnUHCk3B9jUSRhSkGSehqGfE+3q2NqB2UUzs0iKZoEEvKWjV/f0sLVzc7T8AjdbC 99oHJxpIbnpIzaJKJpA6bvE1rIg8kjBHmqly9TfM=
- In-reply-to: <1539017933.1412806.1534816128.38CEBA8F@webmail.messagingengine.com>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- List-unsubscribe: <mailto:zsh-workers-unsubscribe@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <20180924210550.carijwjibarjivu4@chaz.gmail.com> <CGME20181007133632epcas5p43a3b4c7f0fe1863478748c5cf46ce8ef@epcas5p4.samsung.com> <20181007133545.zzkrbc3ed6shnk3e@chaz.gmail.com> <20181008090557eucas1p11f18ef9ca4a6e3cc09fd59242f344f96~bltk3bsqO1947719477eucas1p1q@eucas1p1.samsung.com> <CACeGjnUhNqca7jLAR0KKSxobzDd+xXdAe4BeUeRpxu2CTp_zkA@mail.gmail.com> <20181008141056eucas1p2a9a49ec055d2760e87c17832af9f6591~bp33g9vlR0328803288eucas1p2G@eucas1p2.samsung.com> <1539008917.1366329.1534632080.5313528C@webmail.messagingengine.com> <20181008152406eucas1p1660f190ddb4bcd4c0131c4c84492a9f2~bq3vkNlyg2997729977eucas1p1I@eucas1p1.samsung.com> <20181008154932.dvc5q46ylb66j2mm@tarpaulin.shahaf.local2> <20181008164357eucas1p28f2fd7942bffedcc4e769b2ad5d35c51~br9daEJcB1834618346eucas1p2w@eucas1p2.samsung.com> <1539017933.1412806.1534816128.38CEBA8F@webmail.messagingengine.com>
On Mon, 2018-10-08 at 16:58 +0000, Daniel Shahaf wrote:
> Peter Stephenson wrote on Mon, 08 Oct 2018 17:43 +0100:
> So the lex.c error may be an independent issue. The link to the typeset
> change is probably the failure address, 0x3A, which is the hex value of
> the ASCII colon character, which is the joinchar of $MANPATH.
That's interesting and points to a problem along the lines I suggested
--- confusion between special and non-special tied variables. MANPATH
as a special tied variable uses colonarrsetfn() / colonarrgetfn() to set
and retrieve values, which uses a colon implicitly, not from the
parameter structure. Non-special tied arrays have a tieddata structure
in the data.
I didn't get any reaction from the following, however.
pws
diff --git a/Src/params.c b/Src/params.c
index 089a958..b1420f7 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -4058,6 +4058,8 @@ char *
colonarrgetfn(Param pm)
{
char ***dptr = (char ***)pm->u.data;
+ DPUTS(!(pm->node.flags & PM_SPECIAL),
+ "Wrong get fn for npn-special tied array");
return *dptr ? zjoin(*dptr, ':', 1) : "";
}
@@ -4066,6 +4068,8 @@ void
colonarrsetfn(Param pm, char *x)
{
char ***dptr = (char ***)pm->u.data;
+ DPUTS(!(pm->node.flags & PM_SPECIAL),
+ "Wrong set fn for npn-special tied array");
/*
* We have to make sure this is never NULL, since that
* can cause problems.
@@ -4085,6 +4089,7 @@ char *
tiedarrgetfn(Param pm)
{
struct tieddata *dptr = (struct tieddata *)pm->u.data;
+ DPUTS(pm->node.flags & PM_SPECIAL, "Wrong get fn for special tied
array");
return *dptr->arrptr ? zjoin(*dptr->arrptr, STOUC(dptr->joinchar), 1) :
"";
}
@@ -4093,6 +4098,7 @@ void
tiedarrsetfn(Param pm, char *x)
{
struct tieddata *dptr = (struct tieddata *)pm->u.data;
+ DPUTS(pm->node.flags & PM_SPECIAL, "Wrong set fn for special tied
array");
if (*dptr->arrptr)
freearray(*dptr->arrptr);
Messages sorted by:
Reverse Date,
Date,
Thread,
Author