efl
1#ifdef HAVE_CONFIG_H2# include <config.h>3#endif4
5#include <stdio.h>6#include <limits.h>7
8#include <Efreet.h>9#include "ef_test.h"10
11static void dump(Efreet_Menu *menu, const char *path);12
13int
14main(int argc EINA_UNUSED, char **argv EINA_UNUSED)15{
16Efreet_Menu *menu;17
18if (!efreet_init())19{20fprintf(stderr, "Failed to init Efreet\n");21return 1;22}23
24menu = efreet_menu_get();25if (!menu)26{27fprintf(stderr, "Failed to read menu\n");28return 1;29}30
31dump(menu, "");32
33efreet_menu_free(menu);34efreet_shutdown();35return 0;36}
37
38static void39dump(Efreet_Menu *menu, const char *path)40{
41Efreet_Menu *entry;42Eina_List *l;43
44if (!menu || !menu->entries) return;45
46EINA_LIST_FOREACH(menu->entries, l, entry)47{48if (entry->type == EFREET_MENU_ENTRY_DESKTOP)49{50if (!path || !*path) path = "/";51printf("%s\t%s\t%s\n", path, entry->id,52entry->desktop->orig_path);53}54else if (entry->type == EFREET_MENU_ENTRY_MENU)55{56char new_path[PATH_MAX];57
58snprintf(new_path, sizeof(new_path), "%s%s/", path, entry->name);59dump(entry, new_path);60}61}62}
63