[patch 1/2] speakup: Fix hang on spelling words with non-latin1 characters
Samuel Thibault
samuel.thibault at ens-lyon.org
Sat Mar 11 20:56:07 EST 2017
9831013cbdbd3d06430a1db01d8c32d50c7d1c04 ('speakup: convert screen reading to
16bit characters') made spell_word() ignore non-latin1 characters now read from
the VC, but it missed actually skipping them, leading to an infinite loop. This fixes it by just advancing the unicode character pointer.
Reported-by: Zahari Yurukov <zahari.yurukov at gmail.com>
Signed-off-by: Samuel Thibault <samuel.thibault at ens-lyon.org>
Tested-by: Zahari Yurukov <zahari.yurukov at gmail.com>
Index: linux-2.6/drivers/staging/speakup/main.c
===================================================================
--- linux-2.6.orig/drivers/staging/speakup/main.c
+++ linux-2.6/drivers/staging/speakup/main.c
@@ -718,8 +718,11 @@ static void spell_word(struct vc_data *v
return;
while ((ch = *cp)) {
if (ch >= 0x100)
+ {
/* FIXME */
+ cp++;
continue;
+ }
if (cp != buf)
synth_printf(" %s ", delay_str[spk_spell_delay]);
if (IS_CHAR(ch, B_CAP)) {
More information about the Speakup
mailing list