From 3f7951d187cfdc3b5f09a3aa5475495d944239d4 Mon Sep 17 00:00:00 2001 From: rlar Date: Sun, 1 May 2016 15:59:17 +0200 Subject: [PATCH] evaluate_expr(), change signature, pass substring instead of string --- src/frontend/numparam/xpressn.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/frontend/numparam/xpressn.c b/src/frontend/numparam/xpressn.c index 3f8a15f0f..95cd4cef8 100644 --- a/src/frontend/numparam/xpressn.c +++ b/src/frontend/numparam/xpressn.c @@ -1131,14 +1131,14 @@ evaluate_variable(dico_t *dico, SPICE_DSTRINGPTR qstr_p, char *t) /* transform exression in string `t' to result q */ static bool -evaluate_expr(dico_t *dico, SPICE_DSTRINGPTR qstr_p, char *t) +evaluate_expr(dico_t *dico, SPICE_DSTRINGPTR qstr_p, const char *t, const char * const t_end) { bool err = 0; double u; spice_dstring_reinit(qstr_p); - u = formula(dico, t, t + strlen(t), &err); + u = formula(dico, t, t_end, &err); if (err) return err; @@ -1234,7 +1234,8 @@ nupa_substitute(dico_t *dico, char *s, char *r, bool err) sadd(&qstr, "last"); err = 0; } else { - err = evaluate_expr(dico, &qstr, spice_dstring_value(&tstr)); + const char *xx = spice_dstring_value(&tstr); + err = evaluate_expr(dico, &qstr, xx, xx + strlen(xx)); } } @@ -1281,7 +1282,8 @@ nupa_substitute(dico_t *dico, char *s, char *r, bool err) err = message(dico, "Closing \")\" not found.\n"); } else { pscopy(&tstr, s, i, k - i - 1); - err = evaluate_expr(dico, &qstr, spice_dstring_value(&tstr)); + const char *xx = spice_dstring_value(&tstr); + err = evaluate_expr(dico, &qstr, xx, xx + strlen(xx)); } i = k;