X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Fadd_tries.c;fp=ncurses%2Ftries.c;h=95a9e965c5a78e0e21b5796aa2b8f7570bfaa06f;hp=527388665818da84eec073069261398e34ebd44e;hb=0eb88fc5281804773e2a0c7a488a4452463535ce;hpb=661078ddbde3ce0f3b06e95642fbb9b5fef7dca1 diff --git a/ncurses/tries.c b/ncurses/tinfo/add_tries.c similarity index 71% rename from ncurses/tries.c rename to ncurses/tinfo/add_tries.c index 52738866..95a9e965 100644 --- a/ncurses/tries.c +++ b/ncurses/tinfo/add_tries.c @@ -27,19 +27,19 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1997 * + * Author: Thomas E. Dickey 1998 * ****************************************************************************/ /* -** tries.c +** add_tries.c ** -** Functions to manage the tree of partial-completions for keycodes. +** Add keycode/string to tries-tree. ** */ #include -MODULE_ID("$Id: tries.c,v 1.7 1998/02/11 12:13:57 tom Exp $") +MODULE_ID("$Id: add_tries.c,v 1.1 1998/11/08 00:04:18 tom Exp $") #define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0' #define CMP_TRY(a,b) ((a)? (a == b) : (b == 128)) @@ -122,64 +122,3 @@ void _nc_add_to_try(struct tries **tree, char *str, unsigned short code) ptr->value = code; return; } - -/* - * Expand a keycode into the string that it corresponds to, returning null if - * no match was found, otherwise allocating a string of the result. - */ -char *_nc_expand_try(struct tries *tree, unsigned short code, size_t len) -{ - struct tries *ptr = tree; - char *result = 0; - - if (code != 0) { - while (ptr != 0) { - if ((result = _nc_expand_try(ptr->child, code, len + 1)) != 0) { - break; - } - if (ptr->value == code) { - result = typeCalloc(char, len+2); - break; - } - ptr = ptr->sibling; - } - } - if (result != 0) { - if ((result[len] = ptr->ch) == 0) - *((unsigned char *)(result+len)) = 128; -#ifdef TRACE - if (len == 0) - _tracef("expand_key %s %s", _trace_key(code), _nc_visbuf(result)); -#endif - } - return result; -} - -/* - * Remove a code from the specified tree, freeing the unused nodes. Returns - * true if the code was found/removed. - */ -int _nc_remove_key(struct tries **tree, unsigned short code) -{ - if (code == 0) - return FALSE; - - while (*tree != 0) { - if (_nc_remove_key(&(*tree)->child, code)) { - return TRUE; - } - if ((*tree)->value == code) { - 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); - } - return TRUE; - } - tree = &(*tree)->sibling; - } - return FALSE; -}