look in PREFIX/etc for menu files too

SVN revision: 38991
This commit is contained in:
Carsten Haitzler 2009-02-10 11:56:56 +00:00
parent f0ddca76a8
commit 116d7f7a4f
1 changed files with 39 additions and 20 deletions

View File

@ -7,9 +7,34 @@
static char *xdg_sel = NULL;
static Eina_List *menus = NULL;
static void
check_menu_dir(const char *dir)
{
char buf[PATH_MAX], *file;
Ecore_List *files;
snprintf(buf, sizeof(buf), "%s/menus", dir);
files = ecore_file_ls(buf);
if (files)
{
ecore_list_first_goto(files);
while ((file = ecore_list_current(files)))
{
if (e_util_glob_match(file, "*.menu"))
{
snprintf(buf, sizeof(buf), "%s/menus/%s", dir, file);
menus = eina_list_append(menus, strdup(buf));
}
ecore_list_next(files);
}
ecore_list_destroy(files);
}
}
EAPI int
wizard_page_init(E_Wizard_Page *pg)
{
char buf[PATH_MAX];
const char *dirs[] =
{
"/etc/xdg",
@ -17,33 +42,27 @@ wizard_page_init(E_Wizard_Page *pg)
"/usr/local/etc/xdg",
"/usr/opt/etc/xdg",
"/usr/opt/xdg",
"/usr/local/opt/etc/xdg",
"/usr/local/opt/xdg",
"/opt/etc/xdg",
"/opt/xdg",
// FIXME: add more "known locations"
NULL
};
int i;
int i, newdir;
for (i = 0; dirs[i]; i++) check_menu_dir(dirs[i]);
newdir = 1;
snprintf(buf, sizeof(buf), "%s/etc/xdg", e_prefix_get());
for (i = 0; dirs[i]; i++)
{
Ecore_List *files;
char buf[PATH_MAX], *file;
snprintf(buf, sizeof(buf), "%s/menus", dirs[i]);
files = ecore_file_ls(buf);
if (files)
{
ecore_list_first_goto(files);
while ((file = ecore_list_current(files)))
{
if (e_util_glob_match(file, "*.menu"))
{
snprintf(buf, sizeof(buf), "%s/menus/%s", dirs[i], file);
menus = eina_list_append(menus, strdup(buf));
}
ecore_list_next(files);
}
ecore_list_destroy(files);
}
if (!strcmp(dirs[i], buf))
{
newdir = 0;
break;
}
}
if (newdir) check_menu_dir(buf);
return 1;
}
EAPI int