]> Pileus Git - ~andy/gtk/commitdiff
Bug 660730: Win32: Only use _fstat32 if available
authorChun-wei Fan <fanchunwei@src.gnome.org>
Wed, 12 Oct 2011 03:39:06 +0000 (11:39 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Wed, 12 Oct 2011 03:39:06 +0000 (11:39 +0800)
_fstat32 is only introduced with msvcrt80.dll (i.e. Visual C++ 2005), in
which using this function will break compilation with MinGW, which links
against msvcrt.dll.  The msvcrt.lib in the Windows DDK which links to
a later incarnation of the msvcrt.dll in later Windows systems may have
this symbol defined, but that needs to be checked upon to be sure.

Thanks to Dieter Verfaillie for pointing out this problem.

gtk/gtkiconcache.c

index 932f540a9072f3220eeec2406d098bb92452d677..53ceccb47aedafac15385c535ce6f92783e056c4 100644 (file)
@@ -108,8 +108,14 @@ _gtk_icon_cache_new_for_path (const gchar *path)
     goto done;
 
 #ifdef G_OS_WIN32
+
+/* Bug 660730: _fstat32 is only defined in msvcrt80.dll+/VS 2005+ */
+/*             or possibly in the msvcrt.dll linked to by the Windows DDK */
+/*             (will need to check on the Windows DDK part later) */
+#if (_MSC_VER >= 1400 || __MSVCRT_VERSION__ >= 0x0800)
 #undef fstat /* Just in case */
 #define fstat _fstat32  
+#endif
 #endif
 
   if (fstat (fd, &st) < 0 || st.st_size < 4)