From: Samuel Thibault Date: Tue, 14 Mar 2017 19:56:21 +0000 (+0100) Subject: speakup: Fix bogus caps on speaking unicode characters X-Git-Tag: v4.12-rc1~84^2~514 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=0b4139ad5e654b53c593aa84eb6bf36eb6644512;p=linux.git speakup: Fix bogus caps on speaking unicode characters commit 33590c185299 ("speakup: Support spelling unicode characters") mistakenly passed unicode characters to IS_CHAR(), which only supports latin1. Let's assume non-latin1 is lower case, like is done in spell_word(). Signed-off-by: Samuel Thibault Reviewed-by: Chris Brannon Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/speakup/main.c b/drivers/staging/speakup/main.c index dc07b2328bc0..6f1595737553 100644 --- a/drivers/staging/speakup/main.c +++ b/drivers/staging/speakup/main.c @@ -433,12 +433,12 @@ static void speak_char(u16 ch) struct var_t *direct = spk_get_var(DIRECT); if (ch >= 0x100 || (direct && direct->u.n.value)) { - if (IS_CHAR(ch, B_CAP)) { + if (ch < 0x100 && IS_CHAR(ch, B_CAP)) { spk_pitch_shift++; synth_printf("%s", spk_str_caps_start); } synth_putwc_s(ch); - if (IS_CHAR(ch, B_CAP)) + if (ch < 0x100 && IS_CHAR(ch, B_CAP)) synth_printf("%s", spk_str_caps_stop); return; }