Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 117982 Details for
Bug 155993
gnome2-utils.eclass shouldn't access VDB CONTENTS
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch gtk-update-icon-cache to be sane
gtk+-2.10.11-update-icon-subdirs.patch (text/plain), 3.67 KB, created by
Daniel Gryniewicz (RETIRED)
on 2007-05-02 18:44:44 UTC
(
hide
)
Description:
patch gtk-update-icon-cache to be sane
Filename:
MIME Type:
Creator:
Daniel Gryniewicz (RETIRED)
Created:
2007-05-02 18:44:44 UTC
Size:
3.67 KB
patch
obsolete
>diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN gtk+-2.10.11.orig/gtk/updateiconcache.c gtk+-2.10.11/gtk/updateiconcache.c >--- gtk+-2.10.11.orig/gtk/updateiconcache.c 2007-03-14 00:07:02.000000000 -0400 >+++ gtk+-2.10.11/gtk/updateiconcache.c 2007-05-01 17:01:46.000000000 -0400 >@@ -43,6 +43,7 @@ static gboolean force_update = FALSE; > static gboolean ignore_theme_index = FALSE; > static gboolean quiet = FALSE; > static gboolean index_only = FALSE; >+static gboolean check_subdirs = FALSE; > static gchar *var_name = "-"; > > #define CACHE_NAME "icon-theme.cache" >@@ -61,8 +62,82 @@ static gchar *var_name = "-"; > #define ALIGN_VALUE(this, boundary) \ > (( ((unsigned long)(this)) + (((unsigned long)(boundary)) -1)) & (~(((unsigned long)(boundary))-1))) > >+/* returns >0 if dir is newer than time, 0 if dir is older than time, >+ * <0 if stat fails */ >+int >+dir_check (const gchar *path, time_t cache_time) >+{ >+ struct stat path_stat; >+ >+ if (g_stat (path, &path_stat) < 0) >+ { >+ return -1; >+ } >+ return cache_time < path_stat.st_mtime; >+} >+ >+/* Check the subdirectories of the cache dir to see if the cache is up-to-date >+ * We check first and second level subdirs. */ >+gboolean >+is_cache_up_to_date_subdirs (const gchar *toppath, time_t cache_time) >+{ >+ GDir *topdir, *subdir; >+ const gchar *name, *subname; >+ gchar *path, *subpath; >+ int dir_state; >+ >+ topdir = g_dir_open (toppath, 0, NULL); >+ if (!topdir) >+ { >+ /* we can't open dir, assume updated cache */ >+ return TRUE; >+ } >+ >+ while ((name = g_dir_read_name (topdir))) >+ { >+ path = g_build_filename (toppath, name, NULL); >+ dir_state = dir_check (path, cache_time); >+ if (dir_state < 0) >+ { >+ /* cannot stat dir, for some reason; skip */ >+ g_free (path); >+ continue; >+ } >+ else if (dir_state > 0) >+ { >+ /* cache is out of date */ >+ g_free (path); >+ return FALSE; >+ } >+ >+ subdir = g_dir_open (path, 0, NULL); >+ if (!subdir) >+ { >+ /* Cannot open subdir; skip */ >+ g_free (path); >+ continue; >+ } >+ while ((subname = g_dir_read_name (subdir))) >+ { >+ subpath = g_build_filename (path, subname, NULL); >+ dir_state = dir_check (subpath, cache_time); >+ g_free (subpath); >+ >+ if (dir_state > 0) >+ { >+ /* Cache out of date */ >+ return FALSE; >+ } >+ } >+ g_free (path); >+ } >+ >+ /* If we get here, the cache is up to date */ >+ return TRUE; >+} >+ > gboolean >-is_cache_up_to_date (const gchar *path) >+is_cache_up_to_date (const gchar *path, gboolean check_subdirs) > { > struct stat path_stat, cache_stat; > gchar *cache_path; >@@ -88,7 +163,18 @@ is_cache_up_to_date (const gchar *path) > } > > /* Check mtime */ >- return cache_stat.st_mtime >= path_stat.st_mtime; >+ if (cache_stat.st_mtime < path_stat.st_mtime) >+ { >+ /* Cache is out of date */ >+ return FALSE; >+ } >+ if (check_subdirs) >+ { >+ return is_cache_up_to_date_subdirs (path, cache_stat.st_mtime); >+ } >+ >+ /* Cache is up to date */ >+ return TRUE; > } > > gboolean >@@ -1284,6 +1370,7 @@ static GOptionEntry args[] = { > { "index-only", 'i', 0, G_OPTION_ARG_NONE, &index_only, N_("Don't include image data in the cache"), NULL }, > { "source", 'c', 0, G_OPTION_ARG_STRING, &var_name, N_("Output a C header file"), "NAME" }, > { "quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet, N_("Turn off verbose output"), NULL }, >+ { "check-subdirs", 's', 0, G_OPTION_ARG_NONE, &check_subdirs, N_("Check subdirectories when determining if cache is up-to-date"), NULL }, > { NULL } > }; > >@@ -1316,7 +1403,7 @@ main (int argc, char **argv) > return 1; > } > >- if (!force_update && is_cache_up_to_date (path)) >+ if (!force_update && is_cache_up_to_date (path, check_subdirs)) > return 0; > > g_type_init ();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 155993
:
102582
|
102585
|
113025
|
113208
|
113209
|
113217
|
115655
| 117982 |
142783
|
142944