From 2010e6b4fb7fdc9c0b9a7ead0587ae01e8bbe8a7 Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 14 May 2016 12:31:51 +0200 Subject: [PATCH] formula(), kptr++ to the for loop epilogue --- src/frontend/numparam/xpressn.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/frontend/numparam/xpressn.c b/src/frontend/numparam/xpressn.c index c0d5c0ace..6adc24695 100644 --- a/src/frontend/numparam/xpressn.c +++ b/src/frontend/numparam/xpressn.c @@ -892,10 +892,10 @@ formula(dico_t *dico, const char *s, const char *s_end, bool *perror) const char *arg3 = NULL; level = 1; - for (;;) + for (;; kptr++) { - char d = *kptr++; - if (kptr > s_end) + char d = *kptr; + if (kptr >= s_end) d = '\0'; if (d == '(') @@ -905,15 +905,17 @@ formula(dico_t *dico, const char *s, const char *s_end, bool *perror) if ((d == ',') && (level == 1)) { if (arg2 == NULL) - arg2 = kptr; + arg2 = kptr + 1; else - arg3 = kptr; /* kludge for more than 2 args (ternary expression) */ + arg3 = kptr + 1; /* kludge for more than 2 args (ternary expression) */ } /* comma list? */ - if (kptr > s_end) { + if (kptr >= s_end) { + kptr++; break; } if ((d == ')') && (level <= 0)) { + kptr++; break; } }