Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_apps.c Log Message: and now support empty dirs with .order files that reference the all dir of apps.... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_apps.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_apps.c 2 Dec 2004 04:24:54 -0000 1.2 +++ e_apps.c 2 Dec 2004 06:35:37 -0000 1.3 @@ -42,11 +42,19 @@ static int _e_apps_callbacks_delete_me = 0; static Evas_List *_e_apps_change_callbacks = NULL; static Ecore_Event_Handler *_e_apps_exit_handler = NULL; +static Evas_List *_e_apps_repositories = NULL; /* externally accessible functions */ int e_app_init(void) { + char *home; + char buf[4096]; + + home = e_user_homedir_get(); + snprintf(buf, sizeof(buf), "%s/.e/e/applications/all", home); + E_FREE(home); + _e_apps_repositories = evas_list_append(_e_apps_repositories, strdup(buf)); _e_apps_exit_handler = ecore_event_handler_add(ECORE_EVENT_EXE_EXIT, _e_apps_cb_exit, NULL); return 1; } @@ -54,6 +62,11 @@ int e_app_shutdown(void) { + while (_e_apps_repositories) + { + free(_e_apps_repositories->data); + _e_apps_repositories = evas_list_remove_list(_e_apps_repositories, _e_apps_repositories); + } if (_e_apps_exit_handler) { ecore_event_handler_del(_e_apps_exit_handler); @@ -100,7 +113,7 @@ return NULL; } p++; - if (strcasecmp(p, "eapp")) + if ((strcasecmp(p, "eapp"))) { free(a); return NULL; @@ -161,16 +174,27 @@ char *s; s = files->data; + a2 = NULL; if (s[0] != '.') { + Evas_List *pl; + snprintf(buf, sizeof(buf), "%s/%s", a->path, s); - free(s); - a2 = e_app_new(buf, scan_subdirs); + if (e_file_exists(buf)) + a2 = e_app_new(buf, scan_subdirs); + pl = _e_apps_repositories; + while ((!a2) && (pl)) + { + snprintf(buf, sizeof(buf), "%s/%s", (char *)pl->data, s); + a2 = e_app_new(buf, scan_subdirs); + pl = pl->next; + } if (a2) { a->subapps = evas_list_append(a->subapps, a2); a2->parent = a; } + free(s); } files = evas_list_remove_list(files, files); } @@ -462,12 +486,10 @@ { free(l->data); files = evas_list_remove_list(files, l); - ok = 1; break; } } - if (ok) - files2 = evas_list_append(files2, strdup(buf)); + files2 = evas_list_append(files2, strdup(buf)); } } fclose(f); ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs