From ee07eaa733c8a9a39509e336780cd1474787b731 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Fri, 19 May 2017 07:13:22 +0100 Subject: [PATCH] Support capitalized words in text-based replacements. This is important in languages like German that differentiate pronunciation on case. Even English does this (e.g. Polish/polish). --- src/libespeak-ng/translate.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/libespeak-ng/translate.c b/src/libespeak-ng/translate.c index ac9999cd..ce57ba63 100644 --- a/src/libespeak-ng/translate.c +++ b/src/libespeak-ng/translate.c @@ -1135,6 +1135,15 @@ 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) { while (*word_out && available > 1) { + int c; + utf8_in(&c, word_out); + if (iswupper(c)) { + wtab->flags |= FLAG_FIRST_UPPER; + utf8_out(tolower(c), word_out); + } else { + wtab->flags &= ~FLAG_FIRST_UPPER; + } + TranslateWord3(tr, word_out, wtab, NULL); int n;