mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-22 20:36:50 +03:00
Merge branch '1642_fstype'
* 1642_fstype: Ticket #1642: filegui.c contains Linux-specific things
This commit is contained in:
commit
720eca3fa3
@ -628,6 +628,11 @@ AC_DEFUN([gl_FSTYPENAME],
|
|||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
])
|
])
|
||||||
|
AC_CHECK_MEMBERS([struct statvfs.f_fstypename, struct statvfs.f_basetype],,,
|
||||||
|
[
|
||||||
|
AC_INCLUDES_DEFAULT
|
||||||
|
#include <sys/statvfs.h>
|
||||||
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
|
@ -55,19 +55,23 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#if defined (__FreeBSD__)
|
#if defined(STAT_STATVFS) \
|
||||||
|
&& (defined(HAVE_STRUCT_STATVFS_F_BASETYPE) \
|
||||||
|
|| defined(HAVE_STRUCT_STATVFS_F_FSTYPENAME))
|
||||||
|
# include <sys/statvfs.h>
|
||||||
|
# define STRUCT_STATFS struct statvfs
|
||||||
|
# define STATFS statvfs
|
||||||
|
#elif defined(HAVE_STATFS) && !defined(STAT_STATFS4)
|
||||||
|
# ifdef HAVE_SYS_VFS_H
|
||||||
|
# include <sys/vfs.h>
|
||||||
|
# elif defined(HAVE_SYS_MOUNT_H) && defined(HAVE_SYS_PARAM_H)
|
||||||
# include <sys/param.h>
|
# include <sys/param.h>
|
||||||
#endif
|
|
||||||
#if defined(__APPLE__) || defined (__FreeBSD__)
|
|
||||||
# include <sys/mount.h>
|
# include <sys/mount.h>
|
||||||
#elif defined (__NetBSD__)
|
# elif defined(HAVE_SYS_STATFS_H)
|
||||||
# include <sys/param.h>
|
# include <sys/statfs.h>
|
||||||
#else
|
# endif
|
||||||
# ifdef HAVE_VFS
|
# define STRUCT_STATFS struct statfs
|
||||||
# include <sys/vfs.h>
|
# define STATFS statfs
|
||||||
# else
|
|
||||||
# include <sys/statfs.h>
|
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -164,14 +168,16 @@ enum {
|
|||||||
static int
|
static int
|
||||||
filegui__check_attrs_on_fs(const char *fs_path)
|
filegui__check_attrs_on_fs(const char *fs_path)
|
||||||
{
|
{
|
||||||
struct statfs stfs;
|
#ifdef STATFS
|
||||||
|
STRUCT_STATFS stfs;
|
||||||
|
|
||||||
if (!setup_copymove_persistent_attr)
|
if (!setup_copymove_persistent_attr)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (statfs(fs_path, &stfs)!=0)
|
if (STATFS(fs_path, &stfs)!=0)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
# ifdef __linux__
|
||||||
switch ((filegui_nonattrs_fs_t) stfs.f_type)
|
switch ((filegui_nonattrs_fs_t) stfs.f_type)
|
||||||
{
|
{
|
||||||
case MSDOS_SUPER_MAGIC:
|
case MSDOS_SUPER_MAGIC:
|
||||||
@ -184,6 +190,25 @@ filegui__check_attrs_on_fs(const char *fs_path)
|
|||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
# elif defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) \
|
||||||
|
|| defined(HAVE_STRUCT_STATVFS_F_FSTYPENAME)
|
||||||
|
if (!strcmp(stfs.f_fstypename, "msdos")
|
||||||
|
|| !strcmp(stfs.f_fstypename, "msdosfs")
|
||||||
|
|| !strcmp(stfs.f_fstypename, "ntfs")
|
||||||
|
|| !strcmp(stfs.f_fstypename, "procfs")
|
||||||
|
|| !strcmp(stfs.f_fstypename, "smbfs")
|
||||||
|
|| strstr(stfs.f_fstypename, "fusefs"))
|
||||||
|
return 0;
|
||||||
|
# elif defined(HAVE_STRUCT_STATVFS_F_BASETYPE)
|
||||||
|
if (!strcmp(stfs.f_basetype, "pcfs")
|
||||||
|
|| !strcmp(stfs.f_basetype, "ntfs")
|
||||||
|
|| !strcmp(stfs.f_basetype, "proc")
|
||||||
|
|| !strcmp(stfs.f_basetype, "smbfs")
|
||||||
|
|| !strcmp(stfs.f_basetype, "fuse"))
|
||||||
|
return 0;
|
||||||
|
# endif
|
||||||
|
#endif /* STATFS */
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user