dc: without -x, do not parse extended regs: 's p' means: store to ' ' reg, print
function old new delta zbc_lex_next 2240 2233 -7 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-7) Total: -7 bytes text data bss dec hex filename 981437 485 7296 989218 f1822 busybox_old 981412 485 7296 989193 f1809 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
73b2c60825
commit
81293c8af0
@ -3352,16 +3352,13 @@ static BC_STATUS zbc_lex_token(BcLex *l)
|
||||
#if ENABLE_DC
|
||||
static BC_STATUS zdc_lex_register(BcLex *l)
|
||||
{
|
||||
if (isspace(l->buf[l->i - 1])) {
|
||||
bc_lex_whitespace(l);
|
||||
++l->i;
|
||||
if (!G_exreg)
|
||||
RETURN_STATUS(bc_error("extended register"));
|
||||
if (G_exreg && isspace(l->buf[l->i])) {
|
||||
bc_lex_whitespace(l); // eats whitespace (but not newline)
|
||||
l->i++; // bc_lex_name() expects this
|
||||
bc_lex_name(l);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
bc_vec_pop_all(&l->t.v);
|
||||
bc_vec_push(&l->t.v, &l->buf[l->i - 1]);
|
||||
bc_vec_push(&l->t.v, &l->buf[l->i++]);
|
||||
bc_vec_pushZeroByte(&l->t.v);
|
||||
l->t.t = BC_LEX_NAME;
|
||||
}
|
||||
@ -3425,8 +3422,8 @@ static BC_STATUS zdc_lex_token(BcLex *l)
|
||||
BC_LEX_STORE_PUSH,
|
||||
};
|
||||
|
||||
BcStatus s = BC_STATUS_SUCCESS;
|
||||
char c = l->buf[l->i++], c2;
|
||||
BcStatus s;
|
||||
char c, c2;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(dc_lex_regs); ++i) {
|
||||
@ -3434,6 +3431,8 @@ static BC_STATUS zdc_lex_token(BcLex *l)
|
||||
RETURN_STATUS(zdc_lex_register(l));
|
||||
}
|
||||
|
||||
s = BC_STATUS_SUCCESS;
|
||||
c = l->buf[l->i++];
|
||||
if (c >= '%' && c <= '~'
|
||||
&& (l->t.t = dc_char_to_LEX[c - '%']) != BC_LEX_INVALID
|
||||
) {
|
||||
@ -3462,7 +3461,7 @@ static BC_STATUS zdc_lex_token(BcLex *l)
|
||||
case '\f':
|
||||
case '\r':
|
||||
case ' ':
|
||||
l->newline = (c == '\n');
|
||||
l->newline = 0; // was (c == '\n')
|
||||
bc_lex_whitespace(l);
|
||||
break;
|
||||
case '!':
|
||||
|
Loading…
Reference in New Issue
Block a user