mc/mc-64bit.patch

77 lines
2.6 KiB
Diff

--- mc-4.6.1-20041020/src/mountlist.c.64bit 2004-09-25 15:46:23.000000000 +0200
+++ mc-4.6.1-20041020/src/mountlist.c 2005-04-01 16:20:27.192132368 +0200
@@ -132,11 +132,19 @@ struct mount_entry
struct fs_usage
{
+#ifndef HAVE_SYS_STATVFS_H
long fsu_blocks; /* Total blocks. */
long fsu_bfree; /* Free blocks available to superuser. */
long fsu_bavail; /* Free blocks available to non-superuser. */
long fsu_files; /* Total file nodes. */
long fsu_ffree; /* Free file nodes. */
+#else /* We have sys/statvfs.h, use proper data types when _FILE_OFFSET_BITS=64 */
+ fsblkcnt_t fsu_blocks;
+ fsblkcnt_t fsu_bfree;
+ fsblkcnt_t fsu_bavail;
+ fsblkcnt_t fsu_files;
+ fsblkcnt_t fsu_ffree;
+#endif /* HAVE_SYS_STATVFS_H */
};
static int get_fs_usage (char *path, struct fs_usage *fsp);
@@ -663,6 +671,7 @@ my_statfs (struct my_statfs *myfs_stats,
BLOCKS FROMSIZE-byte blocks, rounding away from zero.
TOSIZE must be positive. Return -1 if FROMSIZE is not positive. */
+#if !defined(HAVE_SYS_STATFS_H) || !defined(STAT_STATVFS)
static long
fs_adjust_blocks (long blocks, int fromsize, int tosize)
{
@@ -670,13 +679,21 @@ fs_adjust_blocks (long blocks, int froms
abort ();
if (fromsize <= 0)
return -1;
-
+#else
+static fsblkcnt_t
+fs_adjust_blocks (fsblkcnt_t blocks, unsigned long fromsize, unsigned long tosize)
+{
+ if (!tosize)
+ abort ();
+ if (!fromsize)
+ return -1;
+#endif
if (fromsize == tosize) /* E.g., from 512 to 512. */
return blocks;
else if (fromsize > tosize) /* E.g., from 2048 to 512. */
return blocks * (fromsize / tosize);
else /* E.g., from 256 to 512. */
- return (blocks + (blocks < 0 ? -1 : 1)) / (tosize / fromsize);
+ return (blocks + 1) / (tosize / fromsize);
}
#if defined(_AIX) && defined(_I386)
@@ -773,9 +790,7 @@ get_fs_usage (char *path, struct fs_usag
if (statvfs (path, &fsd) < 0)
return -1;
- /* f_frsize isn't guaranteed to be supported. */
-#define CONVERT_BLOCKS(b) \
- fs_adjust_blocks ((b), fsd.f_frsize ? fsd.f_frsize : fsd.f_bsize, 512)
+#define CONVERT_BLOCKS(b) fs_adjust_blocks ((b), fsd.f_frsize, 512)
#endif
#if defined(CONVERT_BLOCKS) && !defined(STAT_STATFS2_FS_DATA) && !defined(STAT_READ_FILSYS) /* !Ultrix && !SVR2. */
--- mc-4.6.1-20041020/acinclude.m4.64bit 2005-04-01 16:15:56.453290928 +0200
+++ mc-4.6.1-20041020/acinclude.m4 2005-04-01 16:15:56.525279984 +0200
@@ -501,7 +501,7 @@ dnl job is to detect a method to get fil
if test $ac_cv_func_statvfs = yes; then
space=yes
AC_DEFINE(STAT_STATVFS, 1,
- [Define if function `statfs' can be used])
+ [Define if function `statvfs' can be used])
fi
fi