bc: fixes for multi-line if/while/for
function old new delta
zbc_vm_process 561 589 +28
zbc_lex_next_and_skip_NLINE - 22 +22
zbc_parse_stmt_possibly_auto 2232 2253 +21
zbc_lex_skip_if_at_NLINE - 14 +14
zbc_lex_number 192 200 +8
zbc_num_divmod 150 156 +6
bc_vm_run 134 139 +5
bc_vm_init 757 760 +3
bc_num_printNewline 51 54 +3
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 7/0 up/down: 110/0) Total: 110 bytes
text data bss dec hex filename
982138 485 7296 989919 f1adf busybox_old
982275 485 7296 990056 f1b68 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/testsuite/bc.tests b/testsuite/bc.tests
index 093b395..95cc28d 100755
--- a/testsuite/bc.tests
+++ b/testsuite/bc.tests
@@ -56,6 +56,16 @@
"8\n9\n" \
"" "define w()\n{ auto z; return 8; }\nw()\n9"
+testing "bc if(cond)<NL>" \
+ "bc" \
+ "9\n" \
+ "" "if(0)\n3\n9"
+
+testing "bc while(cond)<NL>" \
+ "bc" \
+ "8\n7\n6\n5\n4\n3\n2\n1\n9\n" \
+ "" "i=9;while(--i)\ni\n9"
+
tar xJf bc_large.tar.xz
for f in bc*.bc; do