nupa_substitute(), postpone kptr incrementation

This commit is contained in:
rlar 2016-05-14 15:37:09 +02:00
parent 0aff4dfaa6
commit f5448025a8
1 changed files with 12 additions and 10 deletions

View File

@ -1200,9 +1200,9 @@ nupa_substitute(dico_t *dico, const char *s, char *r)
const char *kptr = s;
int nnest = 1;
for (;;) {
for (;; kptr++) {
d = *kptr++;
d = *kptr;
if (d == '{')
nnest++;
@ -1210,9 +1210,11 @@ nupa_substitute(dico_t *dico, const char *s, char *r)
nnest--;
if (nnest == 0) {
kptr++;
break;
}
if (d == '\0') {
kptr++;
break;
}
}
@ -1253,24 +1255,24 @@ nupa_substitute(dico_t *dico, const char *s, char *r)
const char *kptr = s;
int level = 1;
for (;;) {
for (;; kptr++) {
if (kptr >= s_end)
d = '\0';
else
d = *kptr;
kptr++;
if (d == '(')
level++;
else if (d == ')')
level--;
if (kptr > s_end) {
if (kptr >= s_end) {
kptr++;
break;
}
if ((d == ')') && (level <= 0)) {
kptr++;
break;
}
}
@ -1287,19 +1289,19 @@ nupa_substitute(dico_t *dico, const char *s, char *r)
/* simple identifier may also be string? */
const char *kptr = s;
for (;;) {
for (;; kptr++) {
if (kptr >= s_end)
d = '\0';
else
d = *kptr;
if (kptr >= s_end) {
kptr++;
if (kptr > s_end) {
break;
}
if (d <= ' ') {
kptr++;
break;
}
}