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
This commit is contained in:
Tor Lillqvist 2008-05-27 13:03:49 +00:00 committed by Tor Lillqvist
parent 4449e5032c
commit ff89f9050d
2 changed files with 18 additions and 2 deletions

View File

@ -1,3 +1,12 @@
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.
2008-05-27 10:33:41 Tim Janik <timj@imendio.com>
* gtk/gtkwidget.c: guard gtk_widget_get_snapshot() against

View File

@ -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);