summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-06-12 16:28:37 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2011-06-12 16:28:37 -0700
commitd37ca62316e7526da7d75cc44c7a4cd8a6281bb5 (patch)
treee50d173d4fdedd10d52bb4258bd89a0d29f4fff1
parentea204efb8a3e81a4d9b04d2a36cb8c2a1c74662c (diff)
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.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/keyboard.c8
-rw-r--r--src/lread.c2
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 <eggert@cs.ucla.edu>
+ 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;