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