ash: remove superfluous code in arithmetic mode

Based on commits 1a74845, cfc3d6a and ff13779 from
git://git.kernel.org/pub/scm/utils/dash/dash.git by Herbert Xu

function                                             old     new   delta
evalcommand                                         1197    1204      +7
localcmd                                             327     325      -2
readtoken1                                          3200    3180     -20
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 7/-22)             Total: -15 bytes

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Ron Yorston 2015-05-18 09:54:43 +02:00 committed by Denys Vlasenko
parent 3df47f9cbb
commit 7e4ed267b6

View File

@ -11282,9 +11282,7 @@ readtoken1(int c, int syntax, char *eofmark, int striptabs)
goto quotemark; goto quotemark;
case CENDQUOTE: case CENDQUOTE:
IF_ASH_BASH_COMPAT(bash_dollar_squote = 0;) IF_ASH_BASH_COMPAT(bash_dollar_squote = 0;)
if (eofmark != NULL && arinest == 0 if (eofmark != NULL && varnest == 0) {
&& varnest == 0
) {
USTPUTC(c, out); USTPUTC(c, out);
} else { } else {
if (dqvarnest == 0) { if (dqvarnest == 0) {
@ -11320,7 +11318,6 @@ readtoken1(int c, int syntax, char *eofmark, int striptabs)
if (pgetc() == ')') { if (pgetc() == ')') {
if (--arinest == 0) { if (--arinest == 0) {
syntax = prevsyntax; syntax = prevsyntax;
dblquote = (syntax == DQSYNTAX);
c = CTLENDARI; c = CTLENDARI;
} }
} else { } else {
@ -11645,7 +11642,7 @@ parsesub: {
((unsigned char *)stackblock())[typeloc] = subtype | flags; ((unsigned char *)stackblock())[typeloc] = subtype | flags;
if (subtype != VSNORMAL) { if (subtype != VSNORMAL) {
varnest++; varnest++;
if (dblquote || arinest) { if (dblquote) {
dqvarnest++; dqvarnest++;
} }
} }