From c761b4432a5ccd2f47d56047acbea5da5c9edb16 Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 14 May 2016 12:13:29 +0200 Subject: [PATCH] formula(), transform while loop --- src/frontend/numparam/xpressn.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/frontend/numparam/xpressn.c b/src/frontend/numparam/xpressn.c index c80fdb35d..c0d5c0ace 100644 --- a/src/frontend/numparam/xpressn.c +++ b/src/frontend/numparam/xpressn.c @@ -890,12 +890,11 @@ formula(dico_t *dico, const char *s, const char *s_end, bool *perror) const char *kptr = ++s; const char *arg2 = NULL; const char *arg3 = NULL; - char d; level = 1; - do + for (;;) { - d = *kptr++; + char d = *kptr++; if (kptr > s_end) d = '\0'; @@ -911,7 +910,13 @@ formula(dico_t *dico, const char *s, const char *s_end, bool *perror) arg3 = kptr; /* kludge for more than 2 args (ternary expression) */ } /* comma list? */ - } while ((kptr <= s_end) && !((d == ')') && (level <= 0))); + if (kptr > s_end) { + break; + } + if ((d == ')') && (level <= 0)) { + break; + } + } // fixme, here level = 0 !!!!! (almost)