From 66073c17d52cf43b080fedd5e5b6cf86d06bea25 Mon Sep 17 00:00:00 2001 From: Al Date: Fri, 18 Dec 2015 17:17:35 -0500 Subject: [PATCH] =?UTF-8?q?[fix]=20Handling=20case=20of=20concatenated=20s?= =?UTF-8?q?uffixes=20like=20stra=C3=9Fe=20when=20they=20stand=20alone?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/trie_search.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/trie_search.c b/src/trie_search.c index c5e3bdae..d040af24 100644 --- a/src/trie_search.c +++ b/src/trie_search.c @@ -493,12 +493,21 @@ phrase_t trie_search_suffixes_from_index(trie_t *self, char *word, size_t len, u tail_remaining--; current_tail++; if (i == char_len - 1) { - phrase_len += char_len; phrase_start = (uint32_t)index; + if (index == 0 && tail_remaining == 0) { + log_debug("tail match! ..tail_value=%u\n",tail_value); + phrase_len = (uint32_t)(len - index); + value = tail_value; + index = 0; + break; + } else { + phrase_len += char_len; + } + } continue; } else if (in_tail && tail_remaining == 0 && i == char_len - 1) { - log_debug("tail match!\n"); + log_debug("tail match! tail_value=%u\n", tail_value); phrase_start = (uint32_t)(index + char_len); phrase_len = (uint32_t)(len - index - char_len); value = tail_value;