Please try the attached patch (screen-1.patch) to see if it resolves this problem. It's a modification to brltty's screen screen driver.
If it doesn't work then I'd appreciate a debug log with: -L/path/to/logfile -ldebug,inpkts -- Dave Mielke | 2213 Fox Crescent | The Bible is the very Word of God. Phone: 1-613-726-0014 | Ottawa, Ontario | http://Mielke.cc/bible/ EMail: d...@mielke.cc | Canada K2A 1H7 | http://FamilyRadio.org/
diff --git a/Drivers/Screen/Screen/screen.c b/Drivers/Screen/Screen/screen.c index 056ac9d..b744357 100644 --- a/Drivers/Screen/Screen/screen.c +++ b/Drivers/Screen/Screen/screen.c @@ -41,6 +41,7 @@ static int shmFileDescriptor = -1; #include "log.h" #include "hostcmd.h" #include "charset.h" +#include "ascii.h" #include "scr_driver.h" #include "screen.h" @@ -206,7 +207,7 @@ static int insertKey_ScreenScreen (ScreenKey key) { const unsigned char flags = getAuxiliaryData()[1]; wchar_t character = key & SCR_KEY_CHAR_MASK; - char buffer[3]; + char buffer[0X10]; char *sequence; logMessage(LOG_DEBUG, "insert key: %04X", key); @@ -264,12 +265,15 @@ insertKey_ScreenScreen (ScreenKey key) { if (byte == EOF) { logMessage(LOG_WARNING, "character not supported in local character set: 0X%04X", key); + return 0; } - sequence = buffer + sizeof(buffer); - *--sequence = 0; - *--sequence = byte; - if (key & SCR_KEY_ALT_LEFT) *--sequence = 0X1B; + STR_BEGIN(buffer, sizeof(buffer)); + if (key & SCR_KEY_ALT_LEFT) STR_PRINTF("%c", ESC); + STR_PRINTF("\\%03o", byte); + STR_END; + + sequence = buffer; } return doScreenCommand("stuff", sequence, NULL);
_______________________________________________ This message was sent via the BRLTTY mailing list. To post a message, send an e-mail to: BRLTTY@mielke.cc For general information, go to: http://mielke.cc/mailman/listinfo/brltty