From 93ac29f610e24a617dc5c1dac49b7233842b6da4 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Thu, 10 Jan 2013 05:45:50 +0000 Subject: [PATCH] efl/emotion: fix usage of eina_prefix, add checkme file. we were using "" for locale that made eina_prefix think that we did not had a common prefix. take the time and add a magic file "checkme" to be checked at runtime to validate stuff. also made the binaries be searched in MODULE_ARCH namespace. SVN revision: 82507 --- data/Makefile.am | 7 +++ data/emotion/checkme | 2 + src/modules/emotion/generic/emotion_generic.c | 53 ++++++++++++------- 3 files changed, 43 insertions(+), 19 deletions(-) create mode 100644 data/emotion/checkme diff --git a/data/Makefile.am b/data/Makefile.am index abbdfaf2a1..5104f31b1b 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -59,3 +59,10 @@ edje/vim/plugin-info.txt \ edje/vim/snippets/edc.snippets \ edje/vim/syntax/edc.vim \ edje/vim/syntax/embryo.vim + + +######################################################################## +# Emotion +emotionfilesdir = $(datadir)/emotion +emotionfiles_DATA = emotion/checkme +EXTRA_DIST += $(emotionfiles_DATA) diff --git a/data/emotion/checkme b/data/emotion/checkme new file mode 100644 index 0000000000..e2f46e1c27 --- /dev/null +++ b/data/emotion/checkme @@ -0,0 +1,2 @@ +This is just a test file used to help emotion determine its prefix +location. diff --git a/src/modules/emotion/generic/emotion_generic.c b/src/modules/emotion/generic/emotion_generic.c index d66553f251..a195329114 100644 --- a/src/modules/emotion/generic/emotion_generic.c +++ b/src/modules/emotion/generic/emotion_generic.c @@ -21,10 +21,29 @@ static Eina_Prefix *pfx = NULL; static int _emotion_generic_log_domain = -1; +#ifdef DBG +#undef DBG +#endif #define DBG(...) EINA_LOG_DOM_DBG(_emotion_generic_log_domain, __VA_ARGS__) + +#ifdef INF +#undef INF +#endif #define INF(...) EINA_LOG_DOM_INFO(_emotion_generic_log_domain, __VA_ARGS__) + +#ifdef WRN +#undef WRN +#endif #define WRN(...) EINA_LOG_DOM_WARN(_emotion_generic_log_domain, __VA_ARGS__) + +#ifdef ERR +#undef ERR +#endif #define ERR(...) EINA_LOG_DOM_ERR(_emotion_generic_log_domain, __VA_ARGS__) + +#ifdef CRITICAL +#undef CRITICAL +#endif #define CRITICAL(...) EINA_LOG_DOM_CRIT(_emotion_generic_log_domain, __VA_ARGS__) @@ -83,7 +102,7 @@ _get_player(const char *name) if (selected_name[0] == '/') cmd = selected_name; else { - snprintf(buf, sizeof(buf), "%s/emotion/utils/%s", + snprintf(buf, sizeof(buf), "%s/emotion/utils/" MODULE_ARCH "/%s", libdir, selected_name); cmd = buf; } @@ -98,7 +117,7 @@ _get_player(const char *name) for (i = 0; players[i].name; i++) { - snprintf(buf, sizeof(buf), "%s/emotion/utils/%s", + snprintf(buf, sizeof(buf), "%s/emotion/utils/" MODULE_ARCH "/%s", libdir, players[i].cmdline); DBG("Try generic player '%s'", buf); if (access(buf, R_OK | X_OK) == 0) @@ -1787,27 +1806,24 @@ static void module_close(Emotion_Video_Module *module EINA_UNUSED, void *video) Eina_Bool generic_module_init(void) { - if (!pfx) - { - pfx = eina_prefix_new(NULL, emotion_object_add, - "EMOTION", "emotion", NULL, - PACKAGE_BIN_DIR, - PACKAGE_LIB_DIR, - PACKAGE_DATA_DIR, - ""); - if (!pfx) return EINA_FALSE; - } + if (pfx) return EINA_TRUE; + + pfx = eina_prefix_new(NULL, emotion_init, + "EMOTION", "emotion", "checkme", + PACKAGE_BIN_DIR, PACKAGE_LIB_DIR, + PACKAGE_DATA_DIR, PACKAGE_DATA_DIR); + if (!pfx) return EINA_FALSE; return _emotion_module_register("generic", module_open, module_close); } -static void +void generic_module_shutdown(void) { - if (pfx) - { - eina_prefix_free(pfx); - pfx = NULL; - } + if (!pfx) return; + + eina_prefix_free(pfx); + pfx = NULL; + _emotion_module_unregister("generic"); } @@ -1817,4 +1833,3 @@ EINA_MODULE_INIT(generic_module_init); EINA_MODULE_SHUTDOWN(generic_module_shutdown); #endif -