Exemplo n.º 1
0
static Bool
trie_branch_in_branch (Trie           *trie,
                       TrieIndex       sep_node,
                       const TrieChar *suffix,
                       TrieData        data)
{
    TrieIndex new_da, new_tail;

    new_da = da_insert_branch (trie->da, sep_node, *suffix);
    if ('\0' != *suffix)
        ++suffix;

    new_tail = tail_add_suffix (trie->tail, suffix);
    trie_da_set_tail_index (trie->da, new_da, new_tail);

    return TRUE;
}
Exemplo n.º 2
0
static int
trie_branch_in_branch(
	trie_t trie, trie_idx_t sep_node,
	const char *suffix, trie_data_t data)
{
	trie_idx_t new_da, new_tail;

	new_da = da_insert_branch(trie->da, sep_node, *suffix);
	if (new_da == TRIE_INDEX_ERROR) {
		return -1;
	}
	if (*suffix != '\0') {
		++suffix;
	}
	new_tail = tail_add_suffix(trie->tail, suffix);
	tail_set_data(trie->tail, new_tail, data);
	trie_da_set_tail_index(trie->da, new_da, new_tail);

	trie->dirtyp = 1;
	return 0;
}
Exemplo n.º 3
0
static Bool
trie_branch_in_branch (Trie           *trie,
                       TrieIndex       sep_node,
                       const TrieChar *suffix,
                       TrieData        data)
{
    TrieIndex new_da, new_tail;

    new_da = da_insert_branch (trie->da, sep_node, *suffix);
    if (TRIE_INDEX_ERROR == new_da)
        return FALSE;

    if ('\0' != *suffix)
        ++suffix;

    new_tail = tail_add_suffix (trie->tail, suffix);
    tail_set_data (trie->tail, new_tail, data);
    trie_da_set_tail_index (trie->da, new_da, new_tail);

    trie->is_dirty = TRUE;
    return TRUE;
}