diff src/dired.c @ 48563:26e19e854ef3

(Ffile_attributes): Don't return negative file sizes for files bigger than 2Gb when off_t is 32 bit.
author Jason Rumney <jasonr@gnu.org>
date Wed, 27 Nov 2002 23:51:02 +0000
parents c34e0e8ec697
children 0d51b82bd792
line wrap: on
line diff
--- a/src/dired.c	Wed Nov 27 23:50:54 2002 +0000
+++ b/src/dired.c	Wed Nov 27 23:51:02 2002 +0000
@@ -940,6 +940,11 @@
   /* If the size is out of range for an integer, return a float.  */
   if (XINT (values[7]) != s.st_size)
     values[7] = make_float ((double)s.st_size);
+  /* If the size is negative, and its type is long, convert it back to
+     positive.  */
+  if (s.st_size < 0 && sizeof (s.st_size) == sizeof (long))
+    values[7] = make_float ((double) ((unsigned long) s.st_size));
+
   filemodestring (&s, modes);
   values[8] = make_string (modes, 10);
 #if defined (BSD4_2) || defined (BSD4_3) /* file gid will be dir gid */