map_find_t f = *pf;
int ent = 0; // go to the first child node
for (;;) {
- if (!trie_is_end(ent, f->n)) {
- f->n = f->n->data[ent];
- f->key[f->len++] = f->n->key;
- if (f->n->value) { // found a value
- f->key[f->len] = '\0';
- f->value = f->n->value;
+ if (!trie_is_end(ent, f->_n)) {
+ f->_n = f->_n->data[ent];
+ f->key[f->_len++] = f->_n->key;
+ if (f->_n->value) { // found a value
+ f->key[f->_len] = '\0';
+ f->value = f->_n->value;
return 1;
}
ent = 0; // no value, go to the first child
} else { // no more children, go to parent's next child
- f->n = f->n->parent;
- if (!f->n) {
+ f->_n = f->_n->parent;
+ if (!f->_n) {
*pf = NULL;
free(f);
return 0;
}
- f->len--;
- ent = ent_find(f->n, (unsigned char)f->key[f->len] + 1);
+ f->_len--;
+ ent = ent_find(f->_n, (unsigned char)f->key[f->_len] + 1);
}
}
}
f = *pf = malloc(sizeof(*f));
if (!f)
return -1;
- f->len = 0;
+ f->_len = 0;
}
- f->n = *root;
- if (f->n->value) {
- f->key[f->len] = '\0';
- f->value = f->n->value;
+ f->_n = *root;
+ if (f->_n->value) {
+ f->key[f->_len] = '\0';
+ f->value = f->_n->value;
return 1;
}
return map_findnext(pf);