summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/builtin.c12
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index e4a21a6e4..44bebc218 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2020-06-05 Mikael Magnusson <mikachu@gmail.com>
+
+ * 45985: Src/builtin.c: typeset: Fix leaving corrupted entries
+ in paramtab
+
2020-06-03 Yasuhiro KIMURA <yasu@utahime.org>
* 45950: configure.ac: Fix 'make install' in out-of-tree
diff --git a/Src/builtin.c b/Src/builtin.c
index d5a874a95..770930579 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -2480,12 +2480,16 @@ typeset_single(char *cname, char *pname, Param pm, UNUSED(int func),
return NULL;
}
if (on & (PM_LEFT | PM_RIGHT_B | PM_RIGHT_Z)) {
- if (typeset_setwidth(cname, pm, ops, on, 0))
+ if (typeset_setwidth(cname, pm, ops, on, 0)) {
+ unsetparam_pm(pm, 0, 1);
return NULL;
+ }
}
if (on & (PM_INTEGER | PM_EFLOAT | PM_FFLOAT)) {
- if (typeset_setbase(cname, pm, ops, on, 0))
+ if (typeset_setbase(cname, pm, ops, on, 0)) {
+ unsetparam_pm(pm, 0, 1);
return NULL;
+ }
}
} else {
if (idigit(*pname))
@@ -2503,8 +2507,10 @@ typeset_single(char *cname, char *pname, Param pm, UNUSED(int func),
*/
struct tieddata *tdp = (struct tieddata *)
zalloc(sizeof(struct tieddata));
- if (!tdp)
+ if (!tdp) {
+ unsetparam_pm(pm, 0, 1);
return NULL;
+ }
tdp->joinchar = joinchar;
tdp->arrptr = &altpm->u.arr;