diff --git a/src/libespeak-ng/dictionary.c b/src/libespeak-ng/dictionary.c index cc7f3724..6e5800c9 100644 --- a/src/libespeak-ng/dictionary.c +++ b/src/libespeak-ng/dictionary.c @@ -697,7 +697,7 @@ static int IsLetterGroup(Translator *tr, char *word, int group, int pre) p = tr->letterGroups[group]; if (p == NULL) - return 0; + return -1; while (*p != RULE_GROUP_END) { if (pre) { @@ -1762,7 +1762,7 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ letter_group = LetterGroupNo(rule++); if ((n_bytes = IsLetterGroup(tr, post_ptr-1, letter_group, 0)) >= 0) { add_points = (20-distance_right); - if (n_bytes > 0) // move pointer, if non-zero length group was found + if (n_bytes >= 0) // move pointer, if group was found post_ptr += (n_bytes-1); } else failed = 1; @@ -1970,8 +1970,8 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_ letter_group = LetterGroupNo(rule++); if ((n_bytes = IsLetterGroup(tr, pre_ptr, letter_group, 1)) >= 0) { add_points = (20-distance_right); - if (n_bytes > 0) // move pointer, if non-zero length group was found - pre_ptr -= (n_bytes-1); + if (n_bytes >= 0) // move pointer, if group was found + pre_ptr -= (n_bytes-1); } else failed = 1; break;