I chased this down with Pete. Here's what I believe is happening: 1) Orca uses liblouis for contracted braille: it makes liblouis calls and then calls the BrlAPI write(writeStruct) method using the translated string.
2) I believe Pete built/installed liblouis at one time or another using the --disable-ucs4 option. I verified this by doing so myself and reproducing the crash Pete had. I then rebuilt/reinstalled liblouis using the --enable-ucs4 option. With this as the sole change on my machine, Orca no longer crashed and produced contracted braille fine. I suspect fixing this on Pete's machine will most likely be a matter of doing a search and destroy of all the bad builds/installs of liblouis and replacing them with a good one. I tried wrapping Orca's call to 'write' in a try/except clause, but it appears as though the Python bindings for BrlAPI do not bubble up exceptions. Instead, BrlAPI has a default exception handler that calls abort() and takes down the entire Python machine with it. BrlAPI provides a brlapi_setExceptionHandler method, but I'm not sure how to get to it from Python. Can you BrlTTY folks offer some guidance? Will Willie Walker wrote: >> Ok, the interesting part is >> >> Received Write request on fd 10 >> charset UTF-8 >> writing exception 7 to 10 >> res != (size_t) -1 not met: invalid charset conversion >> exception 7 for packet type 119 on fd 10 >> Closing connection on fd 10 >> >> which means some non-UTF-8 text somehow got in. > > Hmmm....then this means it may possibly be Orca sending bad text. I'm > puzzled why it works so well on OpenSolaris, though. :-( > > Will > > _______________________________________________ This message was sent via the BRLTTY mailing list. To post a message, send an e-mail to: [email protected] For general information, go to: http://mielke.cc/mailman/listinfo/brltty
