From b066cc3ea99fbb2d5b2c5882d17a679c52f2114b Mon Sep 17 00:00:00 2001 From: dana Date: Thu, 18 Jan 2018 15:57:56 -0600 Subject: 42297: (e) subscript flag needs extra work with scalars --- Src/params.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'Src') diff --git a/Src/params.c b/Src/params.c index 51f6e6d9a..f13093403 100644 --- a/Src/params.c +++ b/Src/params.c @@ -1515,7 +1515,7 @@ getarg(char **str, int *inv, Value v, int a2, zlong *w, } } } else { - if (!v->isarr && !word) { + if (!v->isarr && !word && !quote_arg) { l = strlen(s); if (a2) { if (!l || *s != '*') { @@ -1534,9 +1534,23 @@ getarg(char **str, int *inv, Value v, int a2, zlong *w, } } if (!keymatch) { - if (quote_arg) + if (quote_arg) { untokenize(s); - else + /* Scalar (e) needs implicit asterisk tokens */ + if (!v->isarr && !word) { + l = strlen(s); + d = (char *) hcalloc(l + 2); + if (a2) { + *d = Star; + strcpy(d + 1, s); + } else { + strcpy(d, s); + d[l] = Star; + d[l + 1] = '\0'; + } + s = d; + } + } else tokenize(s); remnulargs(s); pprog = patcompile(s, 0, NULL); -- cgit 1.4.1