From 766f67250f01dc5458093c31ec0d2ec09cad65a2 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 13 Dec 2018 17:23:24 +0100 Subject: bc: fix comment handling function old new delta bc_vm_run 514 513 -1 Signed-off-by: Denys Vlasenko --- miscutils/bc.c | 7 +++++-- 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 -- cgit v1.2.3