englebass pushed a commit to branch master.
commit 2e4fb25922a79b91197adaa5fbd37e7bf5e40aa6
Author: Sebastian Dransfeld <[email protected]>
Date: Wed Aug 7 11:45:30 2013 +0200
efreet: clean up ugly internal_get function
CID: #1039186
---
src/lib/efreet/efreet_menu.c | 123 +++++++++++++++++++++----------------------
1 file changed, 60 insertions(+), 63 deletions(-)
diff --git a/src/lib/efreet/efreet_menu.c b/src/lib/efreet/efreet_menu.c
index e4bc66f..739e9c1 100644
--- a/src/lib/efreet/efreet_menu.c
+++ b/src/lib/efreet/efreet_menu.c
@@ -175,8 +175,6 @@ static Eina_Hash *efreet_menu_filter_cbs = NULL;
static Eina_Hash *efreet_menu_move_cbs = NULL;
static Eina_Hash *efreet_menu_layout_cbs = NULL;
-static Efreet_Menu *efreet_menu_internal_get(Efreet_Menu_Cb func, void *data);
-
static Efreet_Menu_Internal *efreet_menu_by_name_find(Efreet_Menu_Internal
*internal,
const char *name,
Efreet_Menu_Internal
**parent);
@@ -527,13 +525,71 @@ efreet_menu_file_set(const char *file)
EAPI void
efreet_menu_async_get(Efreet_Menu_Cb func, const void *data)
{
- efreet_menu_internal_get(func, (void*)data);
+ char menu[PATH_MAX];
+ const char *dir;
+ Eina_List *config_dirs, *l;
+
+ if (!func) return;
+
+#ifndef STRICT_SPEC
+ /* prefer user set menu */
+ if (efreet_menu_file)
+ {
+ if (ecore_file_exists(efreet_menu_file))
+ efreet_menu_async_parse(efreet_menu_file, func, data);
+ }
+#endif
+
+ /* check the users config directory first */
+ snprintf(menu, sizeof(menu), "%s/menus/%sapplications.menu",
+ efreet_config_home_get(), efreet_menu_prefix);
+ if (ecore_file_exists(menu))
+ efreet_menu_async_parse(menu, func, data);
+
+ /* fallback to the XDG_CONFIG_DIRS */
+ config_dirs = efreet_config_dirs_get();
+ EINA_LIST_FOREACH(config_dirs, l, dir)
+ {
+ snprintf(menu, sizeof(menu), "%s/menus/%sapplications.menu",
+ dir, efreet_menu_prefix);
+ if (ecore_file_exists(menu))
+ efreet_menu_async_parse(menu, func, data);
+ }
}
EAPI Efreet_Menu *
efreet_menu_get(void)
{
- return efreet_menu_internal_get(NULL, NULL);
+ char menu[PATH_MAX];
+ const char *dir;
+ Eina_List *config_dirs, *l;
+
+#ifndef STRICT_SPEC
+ /* prefer user set menu */
+ if (efreet_menu_file)
+ {
+ if (ecore_file_exists(efreet_menu_file))
+ return efreet_menu_parse(efreet_menu_file);
+ }
+#endif
+
+ /* check the users config directory first */
+ snprintf(menu, sizeof(menu), "%s/menus/%sapplications.menu",
+ efreet_config_home_get(), efreet_menu_prefix);
+ if (ecore_file_exists(menu))
+ return efreet_menu_parse(menu);
+
+ /* fallback to the XDG_CONFIG_DIRS */
+ config_dirs = efreet_config_dirs_get();
+ EINA_LIST_FOREACH(config_dirs, l, dir)
+ {
+ snprintf(menu, sizeof(menu), "%s/menus/%sapplications.menu",
+ dir, efreet_menu_prefix);
+ if (ecore_file_exists(menu))
+ return efreet_menu_parse(menu);
+ }
+
+ return NULL;
}
EAPI void
@@ -730,65 +786,6 @@ efreet_menu_dump(Efreet_Menu *menu, const char *indent)
}
}
-static Efreet_Menu *
-efreet_menu_internal_get(Efreet_Menu_Cb func, void *data)
-{
- char menu[PATH_MAX];
- const char *dir;
- Eina_List *config_dirs, *l;
-
-#ifndef STRICT_SPEC
- /* prefer user set menu */
- if (efreet_menu_file)
- {
- if (ecore_file_exists(efreet_menu_file))
- {
- if (func)
- {
- efreet_menu_async_parse(efreet_menu_file, func, data);
- return NULL;
- }
- else
- return efreet_menu_parse(efreet_menu_file);
- }
- }
-#endif
-
- /* check the users config directory first */
- snprintf(menu, sizeof(menu), "%s/menus/%sapplications.menu",
- efreet_config_home_get(), efreet_menu_prefix);
- if (ecore_file_exists(menu))
- {
- if (func)
- {
- efreet_menu_async_parse(menu, func, data);
- return NULL;
- }
- else
- return efreet_menu_parse(menu);
- }
-
- /* fallback to the XDG_CONFIG_DIRS */
- config_dirs = efreet_config_dirs_get();
- EINA_LIST_FOREACH(config_dirs, l, dir)
- {
- snprintf(menu, sizeof(menu), "%s/menus/%sapplications.menu",
- dir, efreet_menu_prefix);
- if (ecore_file_exists(menu))
- {
- if (func)
- {
- efreet_menu_async_parse(menu, func, data);
- return NULL;
- }
- else
- return efreet_menu_parse(menu);
- }
- }
-
- return NULL;
-}
-
/**
* @internal
* @return Returns a new Efreet_Menu_Internal struct
--
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk