* dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 3 Jun 2011 18:15:45 +0000 (11:15 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 3 Jun 2011 18:15:45 +0000 (11:15 -0700)
src/ChangeLog
src/dired.c

index fa13259..2d139e0 100644 (file)
@@ -1,5 +1,7 @@
 2011-06-03  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
+
        * lisp.h: Include <intprops.h>, as it'll useful in later changes.
        * character.c, data.c, editfns.c, insdel.c, intervals.c:
        Don't include <intprops.h>, since lisp.h does.
index 60d7bc6..1e58735 100644 (file)
@@ -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.  */