Browse Source

MatchRule: Support multibyte doubled letters

When matching a double-letter whose encoding needs multiple bytes, to
properly skip the double-letter we have to skip these bytes, like other
rules.
master
Samuel Thibault 3 years ago
parent
commit
caf8e650c2
1 changed files with 6 additions and 4 deletions
  1. 6
    4
      src/libespeak-ng/dictionary.c

+ 6
- 4
src/libespeak-ng/dictionary.c View File

@@ -1810,9 +1810,10 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
failed = 1;
break;
case RULE_DOUBLE:
if (letter_w == last_letter_w)
if (letter_w == last_letter_w) {
add_points = (21-distance_right);
else
post_ptr += letter_xbytes;
} else
failed = 1;
break;
case RULE_DOLLAR:
@@ -2004,9 +2005,10 @@ static void MatchRule(Translator *tr, char *word[], char *word_start, int group_
failed = 1;
break;
case RULE_DOUBLE:
if (letter_w == last_letter_w)
if (letter_w == last_letter_w) {
add_points = (21-distance_left);
else
pre_ptr -= letter_xbytes;
} else
failed = 1;
break;
case RULE_DIGIT:

Loading…
Cancel
Save