diff -ru0 /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmime.c libgnomevfs/xdgmime.c
--- /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmime.c	Thu Jun 23 14:19:09 2005
+++ libgnomevfs/xdgmime.c	Thu Sep  8 02:08:05 2005
@@ -131 +131 @@
-  if (stat (file_name, &st) == 0)
+  if (XDG_STAT (file_name, &st) == 0)
@@ -154 +154 @@
-  if (stat (file_name, &st) == 0)
+  if (XDG_STAT (file_name, &st) == 0)
@@ -171 +171 @@
-  if (stat (file_name, &st) == 0)
+  if (XDG_STAT (file_name, &st) == 0)
@@ -208 +208 @@
-  xdg_data_home = getenv ("XDG_DATA_HOME");
+  xdg_data_home = XDG_GETENV ("XDG_DATA_HOME");
@@ -218 +218 @@
-      home = getenv ("HOME");
+      home = XDG_GET_HOME ();
@@ -235 +235 @@
-  xdg_data_dirs = getenv ("XDG_DATA_DIRS");
+  xdg_data_dirs = XDG_GETENV ("XDG_DATA_DIRS");
@@ -237 +237 @@
-    xdg_data_dirs = "/usr/local/share/:/usr/share/";
+    xdg_data_dirs = XDG_DEFAULT_DATA_DIRS;
@@ -249 +249 @@
-      while (*end_ptr != ':' && *end_ptr != '\000')
+      while (*end_ptr != XDG_SEARCHPATH_SEPARATOR && *end_ptr != '\000')
@@ -258 +258 @@
-      if (*end_ptr == ':')
+      if (*end_ptr == XDG_SEARCHPATH_SEPARATOR)
@@ -287 +287 @@
-  if (stat (file_path, &st) == 0)
+  if (XDG_STAT (file_path, &st) == 0)
@@ -388 +387,0 @@
-  struct timeval tv;
@@ -392,2 +391 @@
-  gettimeofday (&tv, NULL);
-  current_time = tv.tv_sec;
+  time (&current_time);
@@ -474 +472 @@
-  if (stat (file_name, &statbuf) != 0)
+  if (XDG_STAT (file_name, &statbuf) != 0)
@@ -488 +486 @@
-      file = fopen (file_name, "r");
+  file = XDG_FOPEN (file_name, "r");
diff -ru0 /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimealias.c libgnomevfs/xdgmimealias.c
--- /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimealias.c	Thu Jun 23 14:14:48 2005
+++ libgnomevfs/xdgmimealias.c	Thu Sep  8 02:08:05 2005
@@ -38,9 +37,0 @@
-#include <fnmatch.h>
-
-#ifndef	FALSE
-#define	FALSE	(0)
-#endif
-
-#ifndef	TRUE
-#define	TRUE	(!FALSE)
-#endif
@@ -127 +118 @@
-  file = fopen (file_name, "r");
+  file = XDG_FOPEN (file_name, "r");
diff -ru0 /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimecache.c libgnomevfs/xdgmimecache.c
--- /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimecache.c	Sun Apr 17 13:37:34 2005
+++ libgnomevfs/xdgmimecache.c	Thu Sep  8 02:08:05 2005
@@ -39,0 +40,3 @@
+#ifdef _WIN32
+#include <winsock2.h> /* for ntohl/ntohs */
+#else
@@ -40,0 +44 @@
+#endif
@@ -621 +625 @@
-  if (stat (file_name, &statbuf) != 0)
+  if (XDG_STAT (file_name, &statbuf) != 0)
@@ -635 +639 @@
-  file = fopen (file_name, "r");
+  file = XDG_FOPEN (file_name, "r");
diff -ru0 /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimeglob.c libgnomevfs/xdgmimeglob.c
--- /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimeglob.c	Sun Apr 24 23:48:02 2005
+++ libgnomevfs/xdgmimeglob.c	Thu Sep  8 02:08:05 2005
@@ -40,8 +39,0 @@
-#ifndef	FALSE
-#define	FALSE	(0)
-#endif
-
-#ifndef	TRUE
-#define	TRUE	(!FALSE)
-#endif
-
@@ -463 +455 @@
-  glob_file = fopen (file_name, "r");
+  glob_file = XDG_FOPEN (file_name, "r");
diff -ru0 /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimeint.c libgnomevfs/xdgmimeint.c
--- /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimeint.c	Sun Apr 24 23:48:02 2005
+++ libgnomevfs/xdgmimeint.c	Thu Sep  8 02:08:05 2005
@@ -36,8 +35,0 @@
-#ifndef	FALSE
-#define	FALSE	(0)
-#endif
-
-#ifndef	TRUE
-#define	TRUE	(!FALSE)
-#endif
-
@@ -154,0 +147,17 @@
+
+#ifdef USE_GLIB
+
+const char *
+_xdg_get_default_data_dirs (void)
+{
+  GQuark quark;
+  const char * const *dirs = g_get_system_data_dirs ();
+  char *string = g_strjoinv (G_SEARCHPATH_SEPARATOR_S, (char **) dirs);
+
+  quark = g_quark_from_string (string);
+  g_free (string);
+
+  return g_quark_to_string (quark);
+}
+
+#endif
diff -ru0 /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimeint.h libgnomevfs/xdgmimeint.h
--- /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimeint.h	Sun Apr 24 23:48:02 2005
+++ libgnomevfs/xdgmimeint.h	Thu Sep  8 02:08:05 2005
@@ -72,0 +73,23 @@
+#if defined (GNOME_VFS_PREFIX) /* If building as part of gnome-vfs */
+#define USE_GLIB
+#endif
+
+#ifdef USE_GLIB
+#include <glib.h>
+#include <glib/gstdio.h>
+#define XDG_GETENV g_getenv
+#define XDG_STAT g_stat
+#define XDG_FOPEN g_fopen
+#define XDG_GET_HOME() g_get_home_dir ()
+const char *_xdg_get_default_data_dirs (void);
+#define XDG_DEFAULT_DATA_DIRS _xdg_get_default_data_dirs ()
+#define XDG_SEARCHPATH_SEPARATOR G_SEARCHPATH_SEPARATOR
+#else
+#define XDG_GETENV getenv
+#define XDG_STAT stat
+#define XDG_FOPEN fopen
+#define XDG_GET_HOME() getenv ("HOME")
+#define XDG_DEFAULT_DATA_DIRS "/usr/local/share/:/usr/share/"
+#define XDG_SEARCHPATH_SEPARATOR ':'
+#endif
+
diff -ru0 /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimemagic.c libgnomevfs/xdgmimemagic.c
--- /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimemagic.c	Sun Apr 24 23:48:02 2005
+++ libgnomevfs/xdgmimemagic.c	Thu Sep  8 02:08:05 2005
@@ -42,6 +42,3 @@
-#ifndef	FALSE
-#define	FALSE	(0)
-#endif
-
-#ifndef	TRUE
-#define	TRUE	(!FALSE)
+#ifdef _WIN32
+#define getc_unlocked getc
+#define LITTLE_ENDIAN 1
@@ -49,0 +47 @@
+#ifndef _WIN32
@@ -50,0 +49 @@
+#endif
@@ -476,0 +476 @@
+#if LITTLE_ENDIAN
@@ -477,0 +478 @@
+#endif
@@ -772 +773 @@
-  magic_file = fopen (file_name, "r");
+  magic_file = XDG_FOPEN (file_name, "r");
diff -ru0 /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimeparent.c libgnomevfs/xdgmimeparent.c
--- /tmp/gnome-vfs-2.12.0/libgnomevfs/xdgmimeparent.c	Tue Dec 14 17:30:30 2004
+++ libgnomevfs/xdgmimeparent.c	Thu Sep  8 02:08:05 2005
@@ -40,8 +39,0 @@
-#ifndef	FALSE
-#define	FALSE	(0)
-#endif
-
-#ifndef	TRUE
-#define	TRUE	(!FALSE)
-#endif
-
@@ -133 +125 @@
-  file = fopen (file_name, "r");
+  file = XDG_FOPEN (file_name, "r");
