Jean-Philippe MENGUAL, le Thu 14 Aug 2008 02:44:17 +0200, a écrit :
> 493       if ((needsEscape[((unsigned)buffer[end - 1])] != 1

Ooh, that line is bogus indeed. The char needs to be casted to unsigned
char rather than unsigned int, because chars are signed and thus values
not in the range 0..127 (and thus -128..-1) just get sign-extended and
then converted to unsigned as e.g. 0xffffffffffff..0xffffffffff80.  Here
is a patch.

Samuel
Index: BrailleDrivers/EuroBraille/eu_clio.c
===================================================================
--- BrailleDrivers/EuroBraille/eu_clio.c        (r�vision 3875)
+++ BrailleDrivers/EuroBraille/eu_clio.c        (copie de travail)
@@ -491,9 +491,9 @@
     return 0;
 
   /* ignoring packets received twice **/
-  if ((needsEscape[((unsigned)buffer[end - 1])] != 1
+  if ((needsEscape[((unsigned char)buffer[end - 1])] != 1
        && buffer[end - 2] == prevPktNbr)
-      || (needsEscape[((unsigned)buffer[end - 1])] == 1 
+      || (needsEscape[((unsigned char)buffer[end - 1])] == 1 
          && buffer[end - 3] == prevPktNbr))
     {
       memmove(buffer, buffer + end + 1, pos - framelen);
@@ -501,7 +501,7 @@
       return 0;
     }
   /* Updating pprevPktNbr */
-  if (needsEscape[((unsigned)buffer[end - 1])] != 1)
+  if (needsEscape[((unsigned char)buffer[end - 1])] != 1)
     prevPktNbr = buffer[end - 2];
   else
     prevPktNbr = buffer[end - 3];
_______________________________________________
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

Reply via email to