aboutsummaryrefslogtreecommitdiffstats
path: root/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'command.c')
-rw-r--r--command.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/command.c b/command.c
index b705d5e0..c3fea2b8 100644
--- a/command.c
+++ b/command.c
@@ -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,