Bug#658667: Crashes DECTALK by sending high-bit characters
Samuel Thibault wrote: > Agreed. Can you perhaps handle submitting the patch upstream too? I've forwarded the bug submission to Mike, who I think also monitors debian-accessibility anyway. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#658667: Crashes DECTALK by sending high-bit characters
Jason White, le Sun 05 Feb 2012 12:18:02 +1100, a écrit : > Since DECTALK Express is English only, as far as I know, there really > isn't much point in sending extended characters to it anyway, Agreed. Can you perhaps handle submitting the patch upstream too? Thanks, Samuel -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#658667: Crashes DECTALK by sending high-bit characters
Package: yasr version: 0.6.9-2 Severity: normal Yasr allows "extended" characters (with the high bit set) to be sent to a DECTALK Express. Some of these characters cause the synthesizer to crash, after which it must be power cycled. I have implemented a local solution that excludes high-bit characters entirely (see attached patch). The alternative (and superior) approach would be to use the existing exclusion mechanism in Yasr by populating the array of "unspeakable" characters for the DECTALK. This would require each of the extended characters to be tested to identify those responsible for the crashes. Since DECTALK Express is English only, as far as I know, there really isn't much point in sending extended characters to it anyway, so I've locally adopted the more general solution, which might not be acceptable from a Debian point of view. A simple patch is attached. Index: yasr-0.6.9/yasr/tts.c === --- yasr-0.6.9.orig/yasr/tts.c 2008-02-03 00:10:07.0 +1100 +++ yasr-0.6.9/yasr/tts.c 2012-02-05 10:59:06.059007839 +1100 @@ -281,6 +281,9 @@ char *p = synth[tts.synth].unspeakable; if (ch < 32) return 1; + /* characters with high bit set cause DECTALK to crash */ + if (tts.synth == TTS_DECTALK && ch & 0x80) +return 1; while (*p) { if (*p++ == ch) return 1;