# HG changeset patch
# User Jun Wu <qu...@fb.com>
# Date 1490332382 25200
#      Thu Mar 23 22:13:02 2017 -0700
# Node ID 825bb185512c66a43ae6927933196b8356c99798
# Parent  597a29c947fe2b9f9ac0a6a03cf710ab9f69757c
# Available At https://bitbucket.org/quark-zju/hg-draft
#              hg pull https://bitbucket.org/quark-zju/hg-draft -r 825bb185512c
osutil: report fstype for BSD and OSX

diff --git a/mercurial/osutil.c b/mercurial/osutil.c
--- a/mercurial/osutil.c
+++ b/mercurial/osutil.c
@@ -28,8 +28,6 @@
 #include <linux/magic.h>
 #endif
-#ifdef HAVE_SYS_MOUNT_H
+#ifdef HAVE_BSD_STATFS
 #include <sys/mount.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
@@ -802,5 +800,10 @@ static PyObject *setprocname(PyObject *s
 /* given a directory path, return filesystem type (best-effort), or None */
 const char *getfstype(const char *path) {
+#ifdef HAVE_BSD_STATFS
+       /* need to return a string field */
+       static struct statfs buf;
+#else
        struct statfs buf;
+#endif
        int r;
        memset(&buf, 0, sizeof(buf));
@@ -808,4 +811,8 @@ const char *getfstype(const char *path) 
        if (r != 0)
                return NULL;
+#ifdef HAVE_BSD_STATFS
+       /* BSD or OSX provides a f_fstypename field */
+       return buf.f_fstypename;
+#endif
        /* Begin of Linux filesystems */
 #ifdef ADFS_SUPER_MAGIC
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to