* Revert the ubuntu fix coz it breaks fedora core.
authorDavid Walter Seikel <onefang@gmail.com>
Sun, 12 Nov 2006 02:48:34 +0000 (02:48 +0000)
committerDavid Walter Seikel <onefang@gmail.com>
Sun, 12 Nov 2006 02:48:34 +0000 (02:48 +0000)
* Try a quick work around for that reported memory eating loop.

I'll fix these properly later today.

SVN revision: 27062

legacy/ecore/src/lib/ecore_desktop/ecore_desktop.c
legacy/ecore/src/lib/ecore_desktop/ecore_desktop_icon.c
legacy/ecore/src/lib/ecore_desktop/ecore_desktop_menu.c

index 51fe0c6..1d2d860 100644 (file)
@@ -841,6 +841,7 @@ ecore_desktop_get_command(Ecore_Desktop * desktop, Ecore_List * files, int fill)
 {
    Ecore_List *result;
    char       *sub_result = NULL, *params = NULL;
+   int         is_single;
 
    result = ecore_list_new();
    if (!result) return NULL;
@@ -912,9 +913,10 @@ if (files)
                ecore_dlist_goto_first(command);
                while ((p = ecore_dlist_next(command)) != NULL)
                  {
-                    int do_file = 0, is_single = 0, is_URL = 0, is_directory = 0, is_file = 0;
+                    int do_file = 0, is_URL = 0, is_directory = 0, is_file = 0;
 
                     t = NULL;
+                    is_single = 0;
                     if (p[0] == '%')
                       switch (p[1])
                         {
@@ -1111,7 +1113,7 @@ if (files)
     * go back and do it all again for the next file. 
     */
    }
-   while((fill) && (files) && (ecore_list_current(files)));
+   while((is_single) && (fill) && (files) && (ecore_list_current(files)));
 
 error:
    if (params) free(params);
index 172b812..786a46a 100644 (file)
@@ -27,7 +27,7 @@ _ecore_desktop_icon_theme_cache_check(Ecore_Desktop_Icon_Theme *icon_theme);
 
 /* FIXME: We need a way for the client to disable searching for any of these that they don't support. */
 static const char  *ext[] =
-   { "", ".edj", ".png", ".svgz", ".svg", ".xpm", NULL };  /* "" is in case the icon already has an extension, search for that first. */
+   { "", ".edj", ".png", /* ".svgz", ".svg", */ ".xpm", NULL };  /* "" is in case the icon already has an extension, search for that first. */
 static int          init_count = 0;
 static Ecore_Hash  *icon_theme_cache = NULL;
 
index 353da04..83bb521 100644 (file)
@@ -587,21 +587,15 @@ _ecore_desktop_menu_unxml(const void *data, Ecore_Desktop_Tree * tree,
                                      else
                                        {
                                           if ((sub->size == 3)
-                                              && (sub->elements[1].type ==
-                                                  ECORE_DESKTOP_TREE_ELEMENT_TYPE_STRING)
-                                              &&
-                                              (((char *)sub->elements[1].
-                                                element)[0] != '<'))
+                                              && (sub->elements[1].type == ECORE_DESKTOP_TREE_ELEMENT_TYPE_STRING)
+                                              && (((char *)sub->elements[1].element)[0] != '<'))
                                             {
                                                char temp[PATH_MAX];
 
-                                               sprintf(temp, "%s %s",
-                                                       (char *)sub->
-                                                       elements[0].element,
-                                                       (char *)sub->
-                                                       elements[1].element);
-                                               ecore_desktop_tree_extend(menu,
-                                                                         temp);
+                                               snprintf(temp, PATH_MAX, "%s %s",
+                                                       (char *)sub->elements[0].element,
+                                                       (char *)sub->elements[1].element);
+                                               ecore_desktop_tree_extend(menu, temp);
                                                result = 1;
                                             }
                                           else
@@ -1565,9 +1559,9 @@ _ecore_desktop_menu_generate(const void *data, Ecore_Desktop_Tree * tree,
                               elements[i].element;
                            if (generate_data.rule->size > 0)
                              {
-                               /* FIXME: This might not be correct, but it fixes ubuntu. */
-                                while (generate_data.rule->elements[0].type == ECORE_DESKTOP_TREE_ELEMENT_TYPE_TREE)
-                                   generate_data.rule = (Ecore_Desktop_Tree *) generate_data.rule->elements[0].element;
+                               /* FIXME: This is not correct, it fixes ubuntu, but breaks FC5. */
+//                              while (generate_data.rule->elements[0].type == ECORE_DESKTOP_TREE_ELEMENT_TYPE_TREE)
+//                                 generate_data.rule = (Ecore_Desktop_Tree *) generate_data.rule->elements[0].element;
                                 if (((char *)generate_data.rule->elements[0].
                                      element)[0] == 'I')
                                   {