From dfe18f824fd582350f8a55e402f210b40ab74083 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 5 Jun 2011 22:55:38 -0700 Subject: [PATCH] * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits. --- src/ChangeLog | 2 ++ src/dired.c | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 9f54dcc3bc5..4269bf4655b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2011-06-06 Paul Eggert + * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits. + Don't assume time_t can fit into int. * buffer.h (struct buffer.modtime): Now time_t, not int. * fileio.c (Fvisited_file_modtime): No need for time_t cast now. diff --git a/src/dired.c b/src/dired.c index 60d7bc64974..1e587353f6d 100644 --- a/src/dired.c +++ b/src/dired.c @@ -1013,12 +1013,11 @@ so last access time will always be midnight of that day. */) The code on the next line avoids a compiler warning on systems where st_ino is 32 bit wide. (bug#766). */ EMACS_INT high_ino = s.st_ino >> 31 >> 1; - EMACS_INT low_ino = s.st_ino & 0xffffffff; values[10] = Fcons (make_number (high_ino >> 8), Fcons (make_number (((high_ino & 0xff) << 16) - + (low_ino >> 16)), - make_number (low_ino & 0xffff))); + + (s.st_ino >> 16 & 0xffff)), + make_number (s.st_ino & 0xffff))); } /* Likewise for device. */ -- 2.39.2