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