mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 02:40:11 +00:00
Can't rename a file if the target exists on Win32. First rename the target
2005-11-06 Tor Lillqvist <tml@novell.com> * gtk/updateiconcache.c (build_cache): Can't rename a file if the target exists on Win32. First rename the target temporarily, then if the renaming of the source to target fails, restore the original name for the target. * gtk/Makefile.am: Use EXEEXT in the dependency on gtk-update-icon-cache.
This commit is contained in:
parent
bd9e367de7
commit
30edb63134
@ -1,3 +1,12 @@
|
||||
2005-11-06 Tor Lillqvist <tml@novell.com>
|
||||
|
||||
* gtk/updateiconcache.c (build_cache): Can't rename a file if the
|
||||
target exists on Win32. First rename the target temporarily, then
|
||||
if the renaming of the source to target fails, restore the
|
||||
original name for the target.
|
||||
|
||||
* gtk/Makefile.am: Use EXEEXT in the dependency on gtk-update-icon-cache.
|
||||
|
||||
2005-11-06 Tor Lillqvist <tml@novell.com>
|
||||
|
||||
(pixbuf_to_hbitmaps_alpha_winxp): Use an 1-bit mask bitmap,
|
||||
|
@ -1,3 +1,12 @@
|
||||
2005-11-06 Tor Lillqvist <tml@novell.com>
|
||||
|
||||
* gtk/updateiconcache.c (build_cache): Can't rename a file if the
|
||||
target exists on Win32. First rename the target temporarily, then
|
||||
if the renaming of the source to target fails, restore the
|
||||
original name for the target.
|
||||
|
||||
* gtk/Makefile.am: Use EXEEXT in the dependency on gtk-update-icon-cache.
|
||||
|
||||
2005-11-06 Tor Lillqvist <tml@novell.com>
|
||||
|
||||
(pixbuf_to_hbitmaps_alpha_winxp): Use an 1-bit mask bitmap,
|
||||
|
@ -953,7 +953,7 @@ STOCK_ICONS = \
|
||||
|
||||
icons:
|
||||
for i in 16 24; do \
|
||||
(cd stock-icons/$$i \
|
||||
(cd stock-icons/$$i \
|
||||
$(LN_S) gtk-go-forward-ltr.png gtk-go-back-rtl.png \
|
||||
$(LN_S) gtk-go-back-ltr.png gtk-go-forward-rtl.png \
|
||||
$(LN_S) gtk-goto-first-ltr.png gtk-goto-last-rtl.png \
|
||||
@ -966,7 +966,7 @@ icons:
|
||||
cd ../..) \
|
||||
done
|
||||
|
||||
gtkbuiltincache.h: @REBUILD@ gtk-update-icon-cache icons
|
||||
gtkbuiltincache.h: @REBUILD@ gtk-update-icon-cache$(EXEEXT) icons
|
||||
./gtk-update-icon-cache --force --ignore-theme-index \
|
||||
--source builtin_icons stock-icons > gtkbuiltincache.h
|
||||
|
||||
|
@ -1143,6 +1143,9 @@ void
|
||||
build_cache (const gchar *path)
|
||||
{
|
||||
gchar *cache_path, *tmp_cache_path;
|
||||
#ifdef G_OS_WIN32
|
||||
gchar *bak_cache_path = NULL;
|
||||
#endif
|
||||
GHashTable *files;
|
||||
gboolean retval;
|
||||
FILE *cache;
|
||||
@ -1188,11 +1191,42 @@ build_cache (const gchar *path)
|
||||
|
||||
cache_path = g_build_filename (path, CACHE_NAME, NULL);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
if (g_file_test (cache_path, G_FILE_TEST_EXISTS))
|
||||
{
|
||||
bak_cache_path = g_strconcat (cache_path, ".bak", NULL);
|
||||
g_unlink (bak_cache_path);
|
||||
if (g_rename (cache_path, bak_cache_path) == -1)
|
||||
{
|
||||
g_printerr ("Could not rename %s to %s: %s, removing %s then.\n",
|
||||
cache_path, bak_cache_path,
|
||||
g_strerror (errno),
|
||||
cache_path);
|
||||
g_unlink (cache_path);
|
||||
bak_cache_path = NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (g_rename (tmp_cache_path, cache_path) == -1)
|
||||
{
|
||||
g_printerr ("Could not rename %s to %s: %s\n",
|
||||
tmp_cache_path, cache_path,
|
||||
g_strerror (errno));
|
||||
g_unlink (tmp_cache_path);
|
||||
#ifdef G_OS_WIN32
|
||||
if (bak_cache_path != NULL)
|
||||
if (g_rename (bak_cache_path, cache_path) == -1)
|
||||
g_printerr ("Could not rename %s back to %s: %s.\n",
|
||||
bak_cache_path, cache_path,
|
||||
g_strerror (errno));
|
||||
#endif
|
||||
exit (1);
|
||||
}
|
||||
#ifdef G_OS_WIN32
|
||||
if (bak_cache_path != NULL)
|
||||
g_unlink (bak_cache_path);
|
||||
#endif
|
||||
|
||||
/* Update time */
|
||||
/* FIXME: What do do if an error occurs here? */
|
||||
|
Loading…
Reference in New Issue
Block a user