From 850b15bfafb08d24ae3e55f5ca8b848b17958f8a Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 9 Sep 2010 12:58:19 +0200 Subject: hush: simplify parse_stream_dquoted function old new delta parse_stream_dquoted 303 250 -53 Signed-off-by: Denys Vlasenko --- shell/hush.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'shell') diff --git a/shell/hush.c b/shell/hush.c index d76fe85f6..5af525982 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -3777,15 +3777,12 @@ static int parse_stream_dquoted(o_string *as_string, * NB: in (unquoted) heredoc, above does not apply to ". */ if (next == dquote_end || strchr("$`\\\n", next) != NULL) { - ch = i_getch(input); - if (ch != '\n') { - o_addqchr(dest, ch); - nommu_addchr(as_string, ch); - } - } else { - o_addqchr(dest, '\\'); - nommu_addchr(as_string, '\\'); - } + ch = i_getch(input); /* eat next */ + if (ch == '\n') + goto again; /* skip \ */ + } /* else: ch remains == '\\', and we double it */ + o_addqchr(dest, ch); + nommu_addchr(as_string, ch); goto again; } if (ch == '$') { @@ -3808,13 +3805,6 @@ static int parse_stream_dquoted(o_string *as_string, } #endif o_addQchr(dest, ch); - if (ch == '=' - && (dest->o_assignment == MAYBE_ASSIGNMENT - || dest->o_assignment == WORD_IS_KEYWORD) - && is_well_formed_var_name(dest->data, '=') - ) { - dest->o_assignment = DEFINITELY_ASSIGNMENT; - } goto again; #undef as_string } -- cgit v1.2.3