raise error on missing end bracket
authorLaurent Mazet <laurent.mazet@thalesgroup.com>
Mon, 23 Jan 2023 10:07:42 +0000 (11:07 +0100)
committerLaurent Mazet <laurent.mazet@thalesgroup.com>
Mon, 23 Jan 2023 10:07:42 +0000 (11:07 +0100)
calc.c
parser.c

diff --git a/calc.c b/calc.c
index 82ec9712dde481364f8359303c27313cc2915509..513c7812439b9c1c645d4e0c75cce0d2dc644ff6 100644 (file)
--- a/calc.c
+++ b/calc.c
@@ -232,7 +232,8 @@ int main (int argc, char *argv[])
 // test: echo "2 + cos(3 *)" | calc.exe | grep -q 'error'
 // test: echo "2 + (foo)" | calc.exe | grep -q 'error'
 // test: echo "2 + cos (pi +" | calc.exe | grep -q 'error'
-// test: echo "2 + cos (pi" | calc.exe | grep -vq 'error'
+// test: echo "2 + cos (pi" | calc.exe | grep -q 'error'
+// test: echo "(2 + " | calc.exe | grep -q 'error'
 // test: echo "cos (1, 2)" | calc.exe | grep -q 'error'
 // test: echo "sqrt 2" | calc.exe | grep -q 'error'
 // test: echo "pow (2)" | calc.exe | grep -q 'error'
index a6992c83c10dbaebcb074d155f0e10eaead341e4..05b89c936b8a6d96b868f440aed06adc5323a4fa 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -209,6 +209,10 @@ element_t *parser (char *str, char **next, int prio)
                 }
                 root->ops[0] = new;
             }
+            if (*str != ')') {
+                delelement (root);
+                return ERROR_OP;
+            }
             str++;
             VERBOSE (DEBUG, fprintf (stdout, "stop processing bracket\n"));
             continue;