More proper fix for issue #196

This commit is contained in:
Valdis Vitolins
2017-02-12 15:56:27 +02:00
parent fe3e3350e4
commit 17168a5669
+4 -4
View File
@@ -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;