Discussion:
[PATCH] speakup: Fix bogus caps on speaking unicode characters
Samuel Thibault
2017-03-14 19:56:21 UTC
Permalink
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 <***@ens-lyon.org>

diff --git a/drivers/staging/speakup/main.c b/drivers/staging/speakup/main.c
index dc07b23..6f15957 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;
}
Chris Brannon
2017-03-14 20:09:44 UTC
Permalink
Post by Samuel Thibault
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().
Reviewed-by: Chris Brannon <***@the-brannons.com>

Loading...