diff options
Diffstat (limited to 'command.c')
-rw-r--r-- | command.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -3177,6 +3177,7 @@ again: if (c == '"') { char *str, *p; + int flags = ALREADY_MALLOCED; int esc_seen = FALSE; toklen = lexend - lexptr; @@ -3209,12 +3210,10 @@ err: append_cmdarg(yylval); return D_STRING; } else { /* awk string */ - size_t len; - len = p - str; if (esc_seen) - len = scan_escape(str, len); + flags |= SCAN; yylval = mk_cmdarg(D_node); - yylval->a_node = make_str_node(str, len); + yylval->a_node = make_str_node(str, p - str, flags); append_cmdarg(yylval); return D_NODE; } @@ -3364,7 +3363,7 @@ concat_args(CMDARG *arg, int count) } str[len] = '\0'; efree(tmp); - return make_str_node(str, len); + return make_str_node(str, len, ALREADY_MALLOCED); } /* find_command --- find the index in 'cmdtab' using exact, |