[gnome-menus/wip/gobject: 15/15] Rename gmenu_tree_get_menu_file() to gmenu_tree_get_menu_path()
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-menus/wip/gobject: 15/15] Rename gmenu_tree_get_menu_file() to gmenu_tree_get_menu_path()
- Date: Sun, 17 Apr 2011 14:01:39 +0000 (UTC)
commit 2cabfd06693da4ce6a35a9dc7f04672fa6db561f
Author: Colin Walters <walters verbum org>
Date: Sun Apr 17 09:57:47 2011 -0400
Rename gmenu_tree_get_menu_file() to gmenu_tree_get_menu_path()
Document it and clean it up.
libmenu/gmenu-tree.c | 33 +++++++++++++--------------------
libmenu/gmenu-tree.h | 2 +-
util/test-menu-spec.c | 2 ++
3 files changed, 16 insertions(+), 21 deletions(-)
---
diff --git a/libmenu/gmenu-tree.c b/libmenu/gmenu-tree.c
index e0f1bae..3028753 100644
--- a/libmenu/gmenu-tree.c
+++ b/libmenu/gmenu-tree.c
@@ -563,29 +563,22 @@ gmenu_tree_class_init (GMenuTreeClass *klass)
}
+/**
+ * gmenu_tree_get_menu_path:
+ * @tree: a #GMenuTree
+ *
+ * This function is only available if the tree has been loaded via
+ * gmenu_tree_load_sync() or a variant thereof.
+ *
+ * Returns: The absolute path to the loaded menu file
+ */
const char *
-gmenu_tree_get_menu_file (GMenuTree *tree)
+gmenu_tree_get_menu_path (GMenuTree *tree)
{
- /* FIXME: this is horribly ugly. But it's done to keep the API. Would be bad
- * to break the API only for a "const char *" => "char *" change. The other
- * alternative is to leak the memory, which is bad too. */
- static char *ugly_result_cache = NULL;
-
- g_return_val_if_fail (tree != NULL, NULL);
-
- /* we need to canonicalize the path so we actually find out the real menu
- * file that is being used -- and take into account XDG_MENU_PREFIX */
- if (!gmenu_tree_canonicalize_path (tree, NULL))
- return NULL;
-
- if (ugly_result_cache != NULL)
- {
- g_free (ugly_result_cache);
- ugly_result_cache = NULL;
- }
+ g_return_val_if_fail (GMENU_IS_TREE (tree), NULL);
+ g_return_val_if_fail (tree->loaded, NULL);
- ugly_result_cache = g_path_get_basename (tree->canonical_path);
- return ugly_result_cache;
+ return tree->canonical_path;
}
/**
diff --git a/libmenu/gmenu-tree.h b/libmenu/gmenu-tree.h
index 19e4784..51a75de 100644
--- a/libmenu/gmenu-tree.h
+++ b/libmenu/gmenu-tree.h
@@ -94,7 +94,7 @@ GMenuTree *gmenu_tree_new (const char *menu_file,
gboolean gmenu_tree_load_sync (GMenuTree *tree,
GError **error);
-const char *gmenu_tree_get_menu_file (GMenuTree *tree);
+const char *gmenu_tree_get_menu_path (GMenuTree *tree);
GMenuTreeDirectory *gmenu_tree_get_root_directory (GMenuTree *tree);
GMenuTreeDirectory *gmenu_tree_get_directory_from_path (GMenuTree *tree,
const char *path);
diff --git a/util/test-menu-spec.c b/util/test-menu-spec.c
index ac164a5..459e3c9 100644
--- a/util/test-menu-spec.c
+++ b/util/test-menu-spec.c
@@ -219,6 +219,8 @@ main (int argc, char **argv)
exit (1);
}
+ g_print ("Loaded menu from %s\n", gmenu_tree_get_menu_path (tree));
+
root = gmenu_tree_get_root_directory (tree);
if (root != NULL)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]