nupa_substitute(), postpone kptr incrementation

This commit is contained in:
rlar 2016-05-14 13:59:49 +02:00
parent d38804d7c0
commit 571909b8b6
1 changed files with 8 additions and 11 deletions

View File

@ -1216,22 +1216,21 @@ nupa_substitute(dico_t *dico, const char *s, char *r)
break; break;
} }
} }
kptr++;
if (d == '\0') { if (d == '\0') {
err = message(dico, "Closing \"}\" not found.\n"); err = message(dico, "Closing \"}\" not found.\n");
} else { } else {
/* exeption made for .meas */ /* exeption made for .meas */
if (s + 4 == kptr - 1 && strncasecmp(s, "LAST", 4) == 0) { if (s + 4 == kptr + 1 - 1 && strncasecmp(s, "LAST", 4) == 0) {
spice_dstring_reinit(&qstr); spice_dstring_reinit(&qstr);
sadd(&qstr, "last"); sadd(&qstr, "last");
err = 0; err = 0;
} else { } else {
err = evaluate_expr(dico, &qstr, s, kptr - 1); err = evaluate_expr(dico, &qstr, s, kptr + 1 - 1);
} }
} }
s = kptr; s = kptr + 1;
if (!err) if (!err)
ir = ir + (int) (insertnumber(dico, r + ir, &qstr) - (r + ir)); ir = ir + (int) (insertnumber(dico, r + ir, &qstr) - (r + ir));
else else
@ -1273,15 +1272,14 @@ nupa_substitute(dico_t *dico, const char *s, char *r)
break; break;
} }
} }
kptr++;
if (kptr > s_end) { if (kptr >= s_end) {
err = message(dico, "Closing \")\" not found.\n"); err = message(dico, "Closing \")\" not found.\n");
} else { } else {
err = evaluate_expr(dico, &qstr, s, kptr - 1); err = evaluate_expr(dico, &qstr, s, kptr + 1 - 1);
} }
s = kptr; s = kptr + 1;
} else { } else {
/* simple identifier may also be string? */ /* simple identifier may also be string? */
@ -1301,10 +1299,9 @@ nupa_substitute(dico_t *dico, const char *s, char *r)
break; break;
} }
} }
kptr++;
err = evaluate_variable(dico, &qstr, s - 1, kptr - 1); err = evaluate_variable(dico, &qstr, s - 1, kptr + 1 - 1);
s = kptr - 1; s = kptr + 1 - 1;
} }
if (!err) if (!err)