[gtk+] Make gtk-update-icon-cache not fall over leftover temp files
- From: Matthias Clasen <matthiasc src gnome org>
- To: svn-commits-list gnome org
- Subject: [gtk+] Make gtk-update-icon-cache not fall over leftover temp files
- Date: Mon, 11 May 2009 12:03:39 -0400 (EDT)
commit 0fd185fa6de2a89c11b4a28c8619e52d274b1b1f
Author: Matthias Clasen <mclasen redhat com>
Date: Mon May 11 12:02:06 2009 -0400
Make gtk-update-icon-cache not fall over leftover temp files
When called with the --force option, try to remove the .icon-theme.cache
file before giving up. This fixes rh#500163.
---
gtk/updateiconcache.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/gtk/updateiconcache.c b/gtk/updateiconcache.c
index f61291e..f6a5cff 100644
--- a/gtk/updateiconcache.c
+++ b/gtk/updateiconcache.c
@@ -1438,6 +1438,7 @@ build_cache (const gchar *path)
struct utimbuf utime_buf;
GList *directories = NULL;
int fd;
+ int retry_count = 0;
#ifndef G_OS_WIN32
mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
#else
@@ -1450,8 +1451,15 @@ build_cache (const gchar *path)
tmp_cache_path = g_build_filename (path, "."CACHE_NAME, NULL);
cache_path = g_build_filename (path, CACHE_NAME, NULL);
+opentmp:
if ((fd = g_open (tmp_cache_path, O_WRONLY | O_CREAT | O_EXCL | O_TRUNC | _O_BINARY, mode)) == -1)
{
+ if (force_update && retry_count == 0)
+ {
+ retry_count++;
+ g_remove (tmp_cache_path);
+ goto opentmp;
+ }
g_printerr (_("Failed to open file %s : %s\n"), tmp_cache_path, g_strerror (errno));
exit (1);
}
@@ -1497,7 +1505,7 @@ build_cache (const gchar *path)
if (!validate_file (tmp_cache_path))
{
g_printerr (_("The generated cache was invalid.\n"));
- //g_unlink (tmp_cache_path);
+ /*g_unlink (tmp_cache_path);*/
exit (1);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]