Bug#658667: Crashes DECTALK by sending high-bit characters

2012-02-04 Thread Jason White
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

2012-02-04 Thread Samuel Thibault
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

2012-02-04 Thread Jason White
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;