Fix #533369. Check whether memeber statvfs.f_basetype available or not.
authorsimon.zheng <simon.zheng@sun.com>
Tue, 27 May 2008 07:51:13 +0000 (07:51 +0000)
committerSimon Zheng <simonz@src.gnome.org>
Tue, 27 May 2008 07:51:13 +0000 (07:51 +0000)
2008-05-27  simon.zheng  <simon.zheng@sun.com>

* configure.in: Fix #533369. Check whether memeber statvfs.f_basetype
        available or not.
* gio/glocalfile.c: (g_local_file_query_filesystem_info):
        Fix #533369. Make G_FILE_ATTRIBUTE_FILESYSTEM_TYPE work on Solaris.

svn path=/trunk/; revision=6939

ChangeLog
configure.in
gio/ChangeLog
gio/glocalfile.c

index b109a0f..636ef04 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-27  simon.zheng  <simon.zheng@sun.com>
+
+       * configure.in: Fix #533369. Check whether memeber statvfs.f_basetype 
+        available or not.
+
 2008-05-27  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/pcre/*: Update to PCRE 7.7
index dab810f..e0bdcb5 100644 (file)
@@ -837,6 +837,8 @@ AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_blocks, struct statfs.f
 #ifdef HAVE_SYS_MOUNT_H
 #include <sys/mount.h>
 #endif])
+# struct statvfs.f_basetype is available on Solaris but not for Linux. 
+AC_CHECK_MEMBERS([struct statvfs.f_basetype],,, [#include <sys/statvfs.h>])
 
 # Checks for libcharset
 AM_LANGINFO_CODESET
index 7964242..1d8f2d5 100644 (file)
@@ -1,3 +1,8 @@
+2008-05-27  simon.zheng  <simon.zheng@sun.com>
+
+       * glocalfile.c: (g_local_file_query_filesystem_info):
+        Fix #533369. Make G_FILE_ATTRIBUTE_FILESYSTEM_TYPE work on Solaris.
+
 2008-05-26  Michael Natterer  <mitch@imendio.com>
 
        * gmemoryoutputstream.h: declare
index cdb2fba..aa009e7 100644 (file)
@@ -916,9 +916,9 @@ g_local_file_query_filesystem_info (GFile         *file,
   gboolean no_size;
 #ifndef G_OS_WIN32
   guint64 block_size;
+  const char *fstype;
 #ifdef USE_STATFS
   struct statfs statfs_buffer;
-  const char *fstype;
 #elif defined(USE_STATVFS)
   struct statvfs statfs_buffer;
 #endif
@@ -1008,6 +1008,12 @@ g_local_file_query_filesystem_info (GFile         *file,
 #else
   fstype = get_fs_type (statfs_buffer.f_type);
 #endif
+
+#elif defined(USE_STATVFS) && defined(HAVE_STRUCT_STATVFS_F_BASETYPE)
+  fstype = g_strdup(statfs_buffer.f_basetype); 
+#endif
+
+#ifndef G_OS_WIN32
   if (fstype &&
       g_file_attribute_matcher_matches (attribute_matcher,
                                        G_FILE_ATTRIBUTE_FILESYSTEM_TYPE))