| @@ -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; | |||