From 9ede8c657f498c584d89a8d8ff3b24104711c88c Mon Sep 17 00:00:00 2001
From: Peter Stephenson
Date: Tue, 9 Oct 2018 11:21:47 +0100
Subject: 43656: special tied arrays don't have tieddata
---
ChangeLog | 3 +++
Src/builtin.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 64c54ca4f..237db3b62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2018-10-09 Peter Stephenson
+ * 43656: Src/builtin.c: special tied parameters don't have
+ tieddata.
+
* unposted: Test/C03traps.ztst: addition to previous test
suggested by Mikael.
diff --git a/Src/builtin.c b/Src/builtin.c
index b81acdb53..ca3ef23be 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -2258,7 +2258,7 @@ typeset_single(char *cname, char *pname, Param pm, UNUSED(int func),
} else if (pm->env && !(pm->node.flags & PM_HASHELEM))
delenv(pm);
DPUTS(ASG_ARRAYP(asg), "BUG: typeset got array value where scalar expected");
- if (altpm) {
+ if (altpm && !(pm->node.flags & PM_SPECIAL)) {
struct tieddata* tdp = (struct tieddata *) pm->u.data;
if (tdp) {
if (tdp->joinchar != joinchar && !asg->value.scalar) {
--
cgit 1.4.1