efl

Форк
0
/
efreet_spec_test.c 
62 строки · 1.2 Кб
1
#ifdef HAVE_CONFIG_H
2
# include <config.h>
3
#endif
4

5
#include <stdio.h>
6
#include <limits.h>
7

8
#include <Efreet.h>
9
#include "ef_test.h"
10

11
static void dump(Efreet_Menu *menu, const char *path);
12

13
int
14
main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
15
{
16
    Efreet_Menu *menu;
17

18
    if (!efreet_init())
19
    {
20
        fprintf(stderr, "Failed to init Efreet\n");
21
        return 1;
22
    }
23

24
    menu = efreet_menu_get();
25
    if (!menu)
26
    {
27
        fprintf(stderr, "Failed to read menu\n");
28
        return 1;
29
    }
30

31
    dump(menu, "");
32

33
    efreet_menu_free(menu);
34
    efreet_shutdown();
35
    return 0;
36
}
37

38
static void
39
dump(Efreet_Menu *menu, const char *path)
40
{
41
    Efreet_Menu *entry;
42
    Eina_List *l;
43

44
    if (!menu || !menu->entries) return;
45

46
    EINA_LIST_FOREACH(menu->entries, l, entry)
47
    {
48
        if (entry->type == EFREET_MENU_ENTRY_DESKTOP)
49
        {
50
            if (!path || !*path) path = "/";
51
            printf("%s\t%s\t%s\n", path, entry->id,
52
                                    entry->desktop->orig_path);
53
        }
54
        else if (entry->type == EFREET_MENU_ENTRY_MENU)
55
        {
56
            char new_path[PATH_MAX];
57

58
            snprintf(new_path, sizeof(new_path), "%s%s/", path, entry->name);
59
            dump(entry, new_path);
60
        }
61
    }
62
}
63

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.