From 268e56a1446af3ca6df84789180b87ac4f57d1d3 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 16 Aug 2012 14:00:11 +0000 Subject: 30169: repeat "typeset -T" with same two first arguments is not an error --- Src/builtin.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'Src') diff --git a/Src/builtin.c b/Src/builtin.c index b5a98cbd2..ce7d6a563 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -2449,7 +2449,20 @@ bin_typeset(char *name, char **argv, Options ops, int func) && (locallevel == pm->level || !(on & PM_LOCAL))) { if (pm->node.flags & PM_TIED) { unqueue_signals(); - zerrnam(name, "can't tie already tied scalar: %s", asg0.name); + if (!strcmp(asg->name, pm->ename)) { + /* + * Already tied in the fashion requested. + */ + struct tieddata *tdp = (struct tieddata*)pm->u.data; + /* Update join character */ + tdp->joinchar = joinchar; + if (asg0.value) + setsparam(asg0.name, ztrdup(asg0.value)); + return 0; + } else { + zerrnam(name, "can't tie already tied scalar: %s", + asg0.name); + } return 1; } if (!asg0.value && !(PM_TYPE(pm->node.flags) & (PM_ARRAY|PM_HASHED))) -- cgit 1.4.1