]> git.eshelyaron.com Git - emacs.git/commitdiff
(Ffile_attributes) [WINDOWSNT]: Force inode be positive.
authorEli Zaretskii <eliz@gnu.org>
Fri, 14 Mar 2008 17:31:09 +0000 (17:31 +0000)
committerEli Zaretskii <eliz@gnu.org>
Fri, 14 Mar 2008 17:31:09 +0000 (17:31 +0000)
src/ChangeLog
src/dired.c

index 1f429c49dc7ec89fcbef00bffda01a16b8575bc9..c9dd5c1535e06e2665f258bec59eca1101c9c375 100644 (file)
@@ -1,5 +1,7 @@
 2008-03-14  Eli Zaretskii  <eliz@gnu.org>
 
+       * dired.c (Ffile_attributes) [WINDOWSNT]: Force inode be positive.
+
        * w32fns.c (globals_of_w32fns, Fx_create_frame): Fix last change.
 
 2008-03-14  Jason Rumney  <jasonr@gnu.org>
index 27292e91bffdc64c1d8e9ad3ec3665ad32a65f81..36324519fff7badeaadfc1edaf424b101bc2b8c9 100644 (file)
@@ -1021,7 +1021,17 @@ Elements of the attribute list are:
   values[9] = (gid != getegid ()) ? Qt : Qnil;
 #endif /* BSD4_2 (or BSD4_3) */
   /* Shut up GCC warnings in FIXNUM_OVERFLOW_P below.  */
+#ifdef WINDOWSNT
+  {
+    /* The bit-shuffling we do in w32.c:stat can turn on the MSB, which
+       will produce negative inode numbers.  People don't like that, so
+       force a positive inode instead.  */
+    unsigned short tem = s.st_ino;
+    ino = tem;
+  }
+#else
   ino = s.st_ino;
+#endif
   if (FIXNUM_OVERFLOW_P (ino))
     /* To allow inode numbers larger than VALBITS, separate the bottom
        16 bits.  */