efl/legacy/efreet/src/bin/efreet_spec_test.c

58 lines
1.2 KiB
C

#include <Efreet.h>
#include <stdio.h>
#define PATH_MAX 4096
static void dump(Efreet_Menu *menu, const char *path);
int
main(int argc, char **argv)
{
Efreet_Menu *menu;
if (!efreet_init())
{
fprintf(stderr, "Failed to init Efreet\n");
return 1;
}
menu = efreet_menu_get();
if (!menu)
{
fprintf(stderr, "Failed to read menu\n");
return 1;
}
dump(menu, "");
efreet_menu_free(menu);
efreet_shutdown();
return 0;
}
static void
dump(Efreet_Menu *menu, const char *path)
{
Efreet_Menu *entry;
if (!menu || !menu->entries) return;
ecore_list_first_goto(menu->entries);
while ((entry = ecore_list_next(menu->entries)))
{
if (entry->type == EFREET_MENU_ENTRY_DESKTOP)
{
if (!path || !*path) path = "/";
printf("%s\t%s\t%s\n", path, entry->id,
entry->desktop->orig_path);
}
else if (entry->type == EFREET_MENU_ENTRY_MENU)
{
char new_path[PATH_MAX];
snprintf(new_path, PATH_MAX, "%s%s/", path, entry->name);
dump(entry, new_path);
}
}
}