diff --git a/dic/dic_search.cpp b/dic/dic_search.cpp index caf765f..69c6ad6 100644 --- a/dic/dic_search.cpp +++ b/dic/dic_search.cpp @@ -358,9 +358,15 @@ void Dictionary::searchCrossRecTempl(struct params_cross_t *params, { const DAWG_EDGE *current = getEdgeAt(edgeptr->ptr); - if (params->mask[params->wordlen] == '\0' && edgeptr->term) + if (params->mask[params->wordlen] == '\0') { - oWordList.push_back(params->mask); + if (edgeptr->term) + oWordList.push_back(params->mask); + } + else if (current->chr == 0) + { + // Do not go on recursion if we are on the sink + return; } else if (params->mask[params->wordlen] == '.') {