-
- while (*tree != 0) {
- if ((unsigned char)(*tree)->ch == (unsigned char)*string) {
- if (string[1] != 0)
- returnCode(_nc_remove_string(&(*tree)->child, string+1));
- if((*tree)->child) {
- /* don't cut the whole sub-tree */
- (*tree)->value = 0;
- } else {
- struct tries *to_free = *tree;
- *tree = (*tree)->sibling;
- free(to_free);
- }
- returnCode(TRUE);
- }
- tree = &(*tree)->sibling;