From: Paul Eggert Date: Sun, 12 Jun 2011 23:28:37 +0000 (-0700) Subject: Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts. X-Git-Tag: emacs-pretest-24.0.90~104^2~548^2~45 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d37ca62316e7526da7d75cc44c7a4cd8a6281bb5;p=emacs.git Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts. These casts should not be needed on 32-bit hosts, either. * keyboard.c (read_char): * lread.c (Fload): Remove casts to unsigned. --- diff --git a/src/ChangeLog b/src/ChangeLog index cb3ed502c96..921f976334a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2011-06-12 Paul Eggert + Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts. + These casts should not be needed on 32-bit hosts, either. + * keyboard.c (read_char): + * lread.c (Fload): Remove casts to unsigned. + * lisp.h (UNSIGNED_CMP): New macro. This fixes comparison bugs on 64-bit hosts. (ASCII_CHAR_P): Use it. diff --git a/src/keyboard.c b/src/keyboard.c index 0bacc2fa28f..0d2761f1aa3 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -2959,9 +2959,7 @@ read_char (int commandflag, int nmaps, Lisp_Object *maps, Lisp_Object prev_event save the echo area contents for it to refer to. */ if (INTEGERP (c) && ! NILP (Vinput_method_function) - && (unsigned) XINT (c) >= ' ' - && (unsigned) XINT (c) != 127 - && (unsigned) XINT (c) < 256) + && ' ' <= XINT (c) && XINT (c) < 256 && XINT (c) != 127) { previous_echo_area_message = Fcurrent_message (); Vinput_method_previous_message = previous_echo_area_message; @@ -2986,9 +2984,7 @@ read_char (int commandflag, int nmaps, Lisp_Object *maps, Lisp_Object prev_event /* Don't run the input method within a key sequence, after the first event of the key sequence. */ && NILP (prev_event) - && (unsigned) XINT (c) >= ' ' - && (unsigned) XINT (c) != 127 - && (unsigned) XINT (c) < 256) + && ' ' <= XINT (c) && XINT (c) < 256 && XINT (c) != 127) { Lisp_Object keys; int key_count, key_count_reset; diff --git a/src/lread.c b/src/lread.c index b22ca930ee6..0426cd4d548 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1208,7 +1208,7 @@ Return t if the file exists and loads successfully. */) result = stat (SSDATA (efound), &s2); SSET (efound, SBYTES (efound) - 1, 'c'); - if (result >= 0 && (unsigned) s1.st_mtime < (unsigned) s2.st_mtime) + if (result == 0 && s1.st_mtime < s2.st_mtime) { /* Make the progress messages mention that source is newer. */ newer = 1;