Enlightenment CVS committal Author : onefang Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_fdo_menu_to_order.c Log Message: Don't create empty menus. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_fdo_menu_to_order.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- e_fdo_menu_to_order.c 14 Oct 2006 12:11:50 -0000 1.18 +++ e_fdo_menu_to_order.c 20 Oct 2006 22:32:30 -0000 1.19 @@ -45,7 +45,7 @@ { struct category_data cat_data; - // FIXME: search out all .desktop files and generate menus ala e17genmenu. + /* search out all .desktop files and generate menus ala e17genmenu. */ ecore_desktop_instrumentation_reset(); cat_data.menus = ecore_hash_new(ecore_str_hash, ecore_str_compare); if (cat_data.menus) @@ -69,37 +69,43 @@ { ecore_sheap_set_free_cb(order_data.sheap, free); snprintf(order_data.order_path, sizeof(order_data.order_path), "%s/.e/e/applications/menu/all/%s", e_user_homedir_get(), path); + /* Collect the apps. */ + ecore_hash_for_each_node(apps, _e_fdo_menu_to_order_dump_each_hash_node, &order_data); + /* Check if we need to create the directory. */ - if (!ecore_file_exists(order_data.order_path)) + if ((order_data.sheap->size) && (!ecore_file_exists(order_data.order_path))) { + Ecore_Sheap *sheap; const char *temp; - ecore_file_mkpath(order_data.order_path); - /* If we create a dir, we add it to the parents .order file. */ - menu_count++; + sheap = ecore_sheap_new(ecore_str_compare, 100); temp = ecore_file_get_dir((const char *) order_data.order_path); - if (temp) + if ((sheap) && (temp)) { - _e_fdo_menu_to_order_add_sheap(order_data.sheap, temp, ecore_file_get_file(order_data.order_path)); - free((char *) temp); - /* We just used the sheap, but we want it clear for next time. */ - ecore_sheap_destroy(order_data.sheap); - order_data.sheap = ecore_sheap_new(ecore_str_compare, 100); - ecore_sheap_set_free_cb(order_data.sheap, free); + ecore_sheap_set_free_cb(sheap, free); + ecore_file_mkpath(order_data.order_path); + menu_count++; + /* If we create a dir, we add it to the parents .order file. */ + _e_fdo_menu_to_order_add_sheap(sheap, temp, ecore_file_get_file(order_data.order_path)); } - if (directory) - { - char dir[PATH_MAX]; - - snprintf(dir, sizeof(dir), "%s/.directory", order_data.order_path); - if ((ecore_file_exists(directory)) && (!ecore_file_exists(dir))) - ecore_file_symlink(directory, dir); - } + if (temp) free((char *) temp); + if (sheap) ecore_sheap_destroy(sheap); } - /* Create the apps. */ - ecore_hash_for_each_node(apps, _e_fdo_menu_to_order_dump_each_hash_node, &order_data); - _e_fdo_menu_to_order_add_sheap(order_data.sheap, order_data.order_path, NULL); - ecore_sheap_destroy(order_data.sheap); + + if (ecore_file_exists(order_data.order_path)) + { + if (directory) + { + char dir[PATH_MAX]; + + snprintf(dir, sizeof(dir), "%s/.directory", order_data.order_path); + if ((ecore_file_exists(directory)) && (!ecore_file_exists(dir))) + ecore_file_symlink(directory, dir); + } + /* Create the apps. */ + _e_fdo_menu_to_order_add_sheap(order_data.sheap, order_data.order_path, NULL); + ecore_sheap_destroy(order_data.sheap); + } } } ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs