nupa_substitute(), postpone kptr incrementation
This commit is contained in:
parent
0aff4dfaa6
commit
f5448025a8
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue