On Thu, 7 Jun 2012 at 23:48:43 +0200, Rodolfo García Peñas wrote:
> Subject: [PATCH 09/10] Cache Icon path redefined
>
> The cache icon path (CACHE_ICON_PATH) is now redefined and used in
> various files. Now is only in one file, and the same folder. Is using
> two different definitions:
>
> define LIB_WMAKER_PATH "Library/WindowMaker"
> define CACHE_ICON_PATH "CachedPixmaps"
>
> Then, the full path is:
>
> LIB_WMAKER_PATH + "/" + CACHE_ICON_PATH
I think this patch makes things more complicated. Having a
#define CACHE_ICON_PATH "/Library/WindowMaker/CachedPixmaps"
like we have now is completely straightforward.
Perhaps you should simply replace its appearance in src/appicon.c
by CACHE_ICON_PATH, no? See here:
[mafra@Pilar:wmaker.git]$ git grep CachedPixmaps src/*
src/appicon.c: if (tmp && strstr(tmp, "Library/WindowMaker/CachedPixmaps")
!= NULL &&
src/appicon.c: if (!tmp || strstr(tmp, "Library/WindowMaker/CachedPixmaps")
!= NULL)
src/icon.c:#define CACHE_ICON_PATH "/Library/WindowMaker/CachedPixmaps"
src/icon.c: * Stores the client supplied icon at
~/GNUstep/Library/WindowMaker/CachedPixmaps
[mafra@Pilar:wmaker.git]$
> ---
> src/WindowMaker.h | 3 ++-
> src/appicon.c | 11 ++++++++---
> src/icon.c | 5 ++---
> src/main.c | 6 ++++--
> 4 files changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/src/WindowMaker.h b/src/WindowMaker.h
> index e10b5ab..3169dda 100644
> --- a/src/WindowMaker.h
> +++ b/src/WindowMaker.h
> @@ -26,6 +26,8 @@
> #include <limits.h>
> #include <WINGs/WINGs.h>
>
> +#define LIB_WMAKER_PATH "Library/WindowMaker"
> +#define CACHE_ICON_PATH "CachedPixmaps"
>
> /* class codes */
> typedef enum {
> @@ -476,4 +478,3 @@ extern const char *WMNWorkspaceNameChanged;
>
> extern const char *WMNResetStacking;
> #endif
> -
> diff --git a/src/appicon.c b/src/appicon.c
> index 0083944..28316be 100644
> --- a/src/appicon.c
> +++ b/src/appicon.c
> @@ -846,19 +846,22 @@ void appIconMouseDown(WObjDescriptor * desc, XEvent *
> event)
>
> void save_app_icon(WWindow *wwin, WApplication *wapp)
> {
> - char *tmp, *path;
> + char *tmp, *path, *libpath;
> struct stat dummy;
> WScreen *scr = NULL;
>
> if (!wapp->app_icon)
> return;
>
> + libpath = wmalloc(strlen(LIB_WMAKER_PATH) + strlen(CACHE_ICON_PATH) +
> 2);
> + snprintf(libpath, strlen(libpath), "%s/%s", LIB_WMAKER_PATH,
> CACHE_ICON_PATH);
> +
> scr = wwin->screen_ptr;
> tmp = wDefaultGetIconFile(scr, wapp->app_icon->wm_instance,
> wapp->app_icon->wm_class, True);
>
> /* If the icon was saved by us from the client supplied icon, but is
> * missing, recreate it. */
> - if (tmp && strstr(tmp, "Library/WindowMaker/CachedPixmaps") != NULL &&
> + if (tmp && strstr(tmp, libpath) != NULL &&
> stat(tmp, &dummy) != 0 && errno == ENOENT) {
> wmessage(_("recreating missing icon '%s'"), tmp);
> path = wIconStore(wapp->app_icon->icon);
> @@ -870,6 +873,8 @@ void save_app_icon(WWindow *wwin, WApplication *wapp)
> }
>
> /* if the displayed icon was supplied by the client, save the icon */
> - if (!tmp || strstr(tmp, "Library/WindowMaker/CachedPixmaps") != NULL)
> + if (!tmp || strstr(tmp, libpath) != NULL)
> wAppIconSave(wapp->app_icon);
> +
> + wfree(libpath);
> }
> diff --git a/src/icon.c b/src/icon.c
> index 576e459..8cf8d33 100644
> --- a/src/icon.c
> +++ b/src/icon.c
> @@ -50,7 +50,6 @@ extern WPreferences wPreferences;
>
> #define MOD_MASK wPreferences.modifier_mask
> #define ICON_SIZE wPreferences.icon_size
> -#define CACHE_ICON_PATH "/Library/WindowMaker/CachedPixmaps"
>
> extern Cursor wCursor[WCUR_LAST];
>
> @@ -484,9 +483,9 @@ static char *get_icon_cache_path(void)
> int len, ret;
>
> prefix = wusergnusteppath();
> - len = strlen(prefix) + strlen(CACHE_ICON_PATH) + 1;
> + len = strlen(prefix) + strlen(LIB_WMAKER_PATH) +
> strlen(CACHE_ICON_PATH) + 3;
> path = wmalloc(len);
> - snprintf(path, len, "%s%s", prefix, CACHE_ICON_PATH);
> + snprintf(path, len, "%s/%s/%s", prefix, LIB_WMAKER_PATH,
> CACHE_ICON_PATH);
>
> ret = create_path(path);
>
> diff --git a/src/main.c b/src/main.c
> index 431d41b..07b01f5 100644
> --- a/src/main.c
> +++ b/src/main.c
> @@ -567,7 +567,8 @@ static void execInitScript()
> {
> char *file, *paths;
>
> - paths = wstrconcat(wusergnusteppath(), "/Library/WindowMaker");
> + paths = wstrconcat(wusergnusteppath(), "/");
> + paths = wstrconcat(wusergnusteppath(), LIB_WMAKER_PATH);
> paths = wstrappend(paths, ":" DEF_CONFIG_PATHS);
>
> file = wfindfile(paths, DEF_INIT_SCRIPT);
> @@ -585,7 +586,8 @@ void ExecExitScript()
> {
> char *file, *paths;
>
> - paths = wstrconcat(wusergnusteppath(), "/Library/WindowMaker");
> + paths = wstrconcat(wusergnusteppath(), "/");
> + paths = wstrconcat(wusergnusteppath(), LIB_WMAKER_PATH);
> paths = wstrappend(paths, ":" DEF_CONFIG_PATHS);
>
> file = wfindfile(paths, DEF_EXIT_SCRIPT);
> --
--
To unsubscribe, send mail to [email protected].