diff --git a/src/lib/efreet/efreet_base.c b/src/lib/efreet/efreet_base.c index 7b1490af46..b67ac0c56c 100644 --- a/src/lib/efreet/efreet_base.c +++ b/src/lib/efreet/efreet_base.c @@ -51,7 +51,7 @@ static const char *xdg_pictures_dir = NULL; static const char *xdg_videos_dir = NULL; static const char *hostname = NULL; -static Eina_Prefix *pfx= NULL; +Eina_Prefix *_efreet_pfx= NULL; static void efreet_dirs_init(void); static const char *efreet_dir_get(const char *key, const char *fallback); @@ -74,7 +74,7 @@ efreet_base_init(void) EINA_LOG_ERR("Efreet: Could not create a log domain for efreet_base.\n"); return 0; } - if (!pfx) pfx = eina_prefix_new + if (!_efreet_pfx) _efreet_pfx = eina_prefix_new (NULL, efreet_init, "EFREET", "efreet", "checkme", PACKAGE_BIN_DIR, PACKAGE_LIB_DIR, PACKAGE_DATA_DIR, PACKAGE_DATA_DIR); efreet_dirs_init(); @@ -110,10 +110,10 @@ efreet_base_shutdown(void) IF_RELEASE(hostname); - if (pfx) + if (_efreet_pfx) { - eina_prefix_free(pfx); - pfx = NULL; + eina_prefix_free(_efreet_pfx); + _efreet_pfx = NULL; } eina_log_domain_unregister(_efreet_base_log_dom); _efreet_base_log_dom = -1; @@ -340,9 +340,9 @@ efreet_dirs_init(void) xdg_cache_home = efreet_dir_get("XDG_CACHE_HOME", "/.cache"); /* xdg_data_dirs */ - if (pfx) + if (_efreet_pfx) { - const char *dir = eina_prefix_get(pfx); + const char *dir = eina_prefix_get(_efreet_pfx); if (dir) { size_t len = strlen(dir); diff --git a/src/lib/efreet/efreet_cache.c b/src/lib/efreet/efreet_cache.c index a801081ce9..e4075e751e 100644 --- a/src/lib/efreet/efreet_cache.c +++ b/src/lib/efreet/efreet_cache.c @@ -108,6 +108,8 @@ EAPI int EFREET_EVENT_ICON_CACHE_UPDATE = 0; EAPI int EFREET_EVENT_DESKTOP_CACHE_UPDATE = 0; EAPI int EFREET_EVENT_DESKTOP_CACHE_BUILD = 0; +extern Eina_Prefix *_efreet_pfx; + #define IPC_HEAD(_type) \ Ecore_Ipc_Event_Server_##_type *e = event; \ if (e->server != ipc) \ @@ -147,7 +149,13 @@ _ipc_launch(void) if (run_in_tree) bs_binary_get(buf, sizeof(buf), "efreet", "efreetd"); else - snprintf(buf, sizeof(buf), PACKAGE_BIN_DIR "/efreetd"); + { + const char *bindir = NULL; + + if (_efreet_pfx) bindir = eina_prefix_bin_get(_efreet_pfx); + if (bindir) snprintf(buf, sizeof(buf), "%s/efreetd", bindir); + else snprintf(buf, sizeof(buf), PACKAGE_BIN_DIR "/efreetd"); + } ecore_exe_run(buf, NULL); num = 0; while ((!ipc) && (num < tries))