From d37ca62316e7526da7d75cc44c7a4cd8a6281bb5 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 12 Jun 2011 16:28:37 -0700 Subject: [PATCH] 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. --- src/ChangeLog | 5 +++++ src/keyboard.c | 8 ++------ src/lread.c | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) 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; -- 2.39.2