From 416bc66dca83ffb6aa22f3dae837327b9db221e2 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Mon, 29 May 2017 11:53:33 +0100 Subject: [PATCH] Fix pronouncing replacement text that is dependent on start of word rules. --- src/libespeak-ng/translate.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/libespeak-ng/translate.c b/src/libespeak-ng/translate.c index ce57ba63..abecc5fc 100644 --- a/src/libespeak-ng/translate.c +++ b/src/libespeak-ng/translate.c @@ -1134,6 +1134,14 @@ int TranslateWord(Translator *tr, char *word_start, WORD_TAB *wtab, char *word_o int flags = TranslateWord3(tr, word_start, wtab, word_out); if (flags & FLAG_TEXTMODE && word_out) { + // Ensure that start of word rules match with the replaced text, + // so that emoji and other characters are pronounced correctly. + char word[N_WORD_BYTES+1]; + word[0] = 0; + word[1] = ' '; + memcpy(word+2, word_out, strlen(word_out)); + word_out = word+2; + while (*word_out && available > 1) { int c; utf8_in(&c, word_out);