From 42b9037ae5c1c62866d4dafee444f578c0335ff7 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 26 Jun 2015 14:55:35 +0100 Subject: 35613: Handle array slices in typeset --- Src/builtin.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'Src') diff --git a/Src/builtin.c b/Src/builtin.c index bc685455d..3da16789a 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -2347,9 +2347,16 @@ typeset_single(char *cname, char *pname, Param pm, UNUSED(int func), asg->is_array = 0; keeplocal = 0; on = pm->node.flags; + } else if (PM_TYPE(on) == PM_ARRAY && ASG_ARRAYP(asg)) { + if (!(pm = setaparam(pname, asg->value.array ? zlinklist2array(asg->value.array) : + mkarray(NULL)))) + return NULL; + asg->value.array = NULL; + keeplocal = 0; + on = pm->node.flags; } else { zerrnam(cname, - "%s: array elements must be scalar", pname); + "%s: inconsistent array element or slice assignment", pname); return NULL; } } -- cgit 1.4.1