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