diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-12-13 17:23:24 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-12-13 17:43:23 +0100 |
commit | 766f67250f01dc5458093c31ec0d2ec09cad65a2 (patch) | |
tree | 0203b6b381d35d5784acf8bb9eccf07dc5958396 | |
parent | 7dc0a51286b7898fcc17033dce1f1856e78494b4 (diff) | |
download | busybox-766f67250f01dc5458093c31ec0d2ec09cad65a2.tar.gz |
bc: fix comment handling
function old new delta
bc_vm_run 514 513 -1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | miscutils/bc.c | 7 | ||||
-rwxr-xr-x | testsuite/bc.tests | 12 |
2 files changed, 17 insertions, 2 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c index 9c7e69fc1..dc9a7da8e 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c @@ -7088,10 +7088,13 @@ static BC_STATUS zbc_vm_stdin(void) string++; if (c == '/' && *string == '*') { comment = true; - break; + string++; + continue; } - if (c == '*' && *string == '/') + if (c == '*' && *string == '/') { comment = false; + string++; + } } if (str || comment || string[-2] == '\\') { bc_vec_concat(&buffer, buf.v); diff --git a/testsuite/bc.tests b/testsuite/bc.tests index 32460092b..4f0d50f73 100755 --- a/testsuite/bc.tests +++ b/testsuite/bc.tests @@ -4,6 +4,18 @@ . ./testing.sh +# testing "test name" "command" "expected result" "file input" "stdin" + +testing "bc comment 1" \ + "bc" \ + "3\n" \ + "" "1 /* comment */ + 2" + +testing "bc comment 2: /*/ is not a closed comment" \ + "bc" \ + "4\n" \ + "" "1 /*/ + 2 */ + 3" + tar xJf bc_large.tar.xz for f in bc*.bc; do |