function old new delta
zdc_parse_expr 656 653 -3
bc_lex_lineComment 39 36 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-6) Total: -6 bytes
text data bss dec hex filename
981424 485 7296 989205 f1815 busybox_old
981418 485 7296 989199 f180f busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
static void bc_lex_lineComment(BcLex *l)
{
+ // Try: echo -n '#foo' | bc
+ size_t i;
l->t.t = BC_LEX_WHITESPACE;
- while (l->i < l->len && l->buf[l->i++] != '\n');
- --l->i;
+ i = l->i;
+ while (i < l->len && l->buf[i] != '\n')
+ i++;
+ l->i = i;
}
static void bc_lex_whitespace(BcLex *l)
// Comments are also BC_LEX_WHITESPACE tokens and eaten here.
s = BC_STATUS_SUCCESS;
do {
- l->t.t = BC_LEX_EOF;
if (l->i == l->len) {
+ l->t.t = BC_LEX_EOF;
if (!G.input_fp)
RETURN_STATUS(BC_STATUS_SUCCESS);
if (!bc_lex_more_input(l)) {
"4\n" \
"" "1 /*/ + 2 */ + 3"
+testing "bc comment 3: unterminated #comment" \
+ "bc" \
+ "" \
+ "" "#foo" # no trailing newline
+
testing "bc backslash 1" \
"bc" \
"3\n" \