From ff89f9050dc14b54292185747e72b01f8bc88c86 Mon Sep 17 00:00:00 2001
From: Tor Lillqvist <tml@novell.com>
Date: Tue, 27 May 2008 13:03:49 +0000
Subject: Use simpler mode for open() on Windows. (No S_I?GRP and S_I?OTH bits
 are

2008-05-27  Tor Lillqvist  <tml@novell.com>

	* gtk/updateiconcache.c (build_cache): Use simpler mode for open()
	on Windows. (No S_I?GRP and S_I?OTH bits are defined in
	<sys/stat.h> on Windows, and the mode used in open() doesn't
	matter much as there are no rwxrwxrwx bits on Windows anyway.)
	Open file in binary mode. Passing "b" to fdopen() later isn't
	enough.


svn path=/trunk/; revision=20190
---
 gtk/updateiconcache.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

(limited to 'gtk/updateiconcache.c')

diff --git a/gtk/updateiconcache.c b/gtk/updateiconcache.c
index 1f748fa6a1..15fc7ca80a 100644
--- a/gtk/updateiconcache.c
+++ b/gtk/updateiconcache.c
@@ -1437,11 +1437,18 @@ build_cache (const gchar *path)
   struct utimbuf utime_buf;
   GList *directories = NULL;
   int fd;
+#ifndef G_OS_WIN32
   mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
-  
+#else
+  int mode = _S_IWRITE | _S_IREAD;
+#endif
+#ifndef _O_BINARY
+#define _O_BINARY 0
+#endif
+
   tmp_cache_path = g_build_filename (path, "."CACHE_NAME, NULL);
 
-  if ((fd = open (tmp_cache_path, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC, mode)) == -1)
+  if ((fd = open (tmp_cache_path, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC | _O_BINARY, mode)) == -1)
     {
       g_printerr (_("Failed to open file %s : %s\n"), tmp_cache_path, g_strerror (errno));
       exit (1);
-- 
cgit v1.2.1