Enlightenment CVS committal

Author  : onefang
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_desktop


Modified Files:
        Ecore_Desktop.h ecore_desktop.c ecore_desktop_menu.c 
        ecore_desktop_paths.c 


Log Message:
Some debuggin', valgrindin', and constifyin`.

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_desktop/Ecore_Desktop.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- Ecore_Desktop.h     17 Aug 2006 20:24:36 -0000      1.11
+++ Ecore_Desktop.h     18 Aug 2006 21:52:33 -0000      1.12
@@ -88,23 +88,21 @@
    /* Function Prototypes */
    EAPI int            ecore_desktop_paths_init(void);
    char               *ecore_desktop_paths_file_find(Ecore_List * paths,
-                                                  char *file, int sub,
-                                                  int (*func) (const
-                                                               void
+                                                  const char *file, const int 
sub,
+                                                  int (*func) (void
                                                                *data,
-                                                               char
+                                                               const char
                                                                *path),
-                                                  const void *data);
-   char               *ecore_desktop_paths_recursive_search(char *path, char 
*d,
+                                                  void *data);
+   char               *ecore_desktop_paths_recursive_search(const char *path, 
const char *file,
                                                            int (*dir_func)
-                                                           (const void *data,
-                                                            char *path),
-                                                           int (*func) (const
-                                                                        void
+                                                           (void *data,
+                                                            const char *path),
+                                                           int (*func) (void
                                                                         *data,
-                                                                        char
+                                                                        const 
char
                                                                         *path),
-                                                           const void *data);
+                                                           void *data);
    EAPI int            ecore_desktop_paths_shutdown(void);
 
    Ecore_Hash         *ecore_desktop_paths_to_hash(const char *paths);
@@ -154,7 +152,7 @@
                                                               int element,
                                                               int level),
                                                  const void *data);
-   void                ecore_esktop_tree_dump(Ecore_Desktop_Tree * tree,
+   void                ecore_desktop_tree_dump(Ecore_Desktop_Tree * tree,
                                              int level);
    void                ecore_desktop_tree_del(Ecore_Desktop_Tree * tree);
 
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_desktop/ecore_desktop.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- ecore_desktop.c     17 Aug 2006 17:09:23 -0000      1.9
+++ ecore_desktop.c     18 Aug 2006 21:52:33 -0000      1.10
@@ -191,6 +191,8 @@
                             result->eap_name = malloc(strlen(value) + 5);
                             if (result->eap_name)
                                sprintf(result->eap_name, "%s.eap", value);
+                            if (temp)
+                               *temp = '.';
                          }
                       eap_name = result->eap_name;
 
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_desktop/ecore_desktop_menu.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- ecore_desktop_menu.c        17 Aug 2006 17:09:23 -0000      1.7
+++ ecore_desktop_menu.c        18 Aug 2006 21:52:33 -0000      1.8
@@ -60,14 +60,14 @@
 static int          _ecore_desktop_menu_unxml(const void *data,
                                               Ecore_Desktop_Tree * tree,
                                               int element, int level);
-static int          _ecore_desktop_menu_check_directory(const void *data,
-                                                        char *path);
-static int          _ecore_desktop_menu_check_menu(const void *data,
-                                                   char *path);
-static int          _ecore_desktop_menu_legacy_menu_dir(const void *data,
-                                                        char *path);
-static int          _ecore_desktop_menu_legacy_menu(const void *data,
-                                                    char *path);
+static int          _ecore_desktop_menu_check_directory(void *data,
+                                                        const char *path);
+static int          _ecore_desktop_menu_check_menu(void *data,
+                                                   const char *path);
+static int          _ecore_desktop_menu_legacy_menu_dir(void *data,
+                                                        const char *path);
+static int          _ecore_desktop_menu_legacy_menu(void *data,
+                                                    const char *path);
 static void         _ecore_desktop_menu_unxml_rules(Ecore_Desktop_Tree * rules,
                                                     Ecore_Desktop_Tree * tree,
                                                     char type, char sub_type);
@@ -81,8 +81,8 @@
                                                     
_ecore_desktop_menu_unxml_data
                                                     *unxml_data, char *app_dir,
                                                     Ecore_Hash * pool);
-static int          _ecore_desktop_menu_check_app(const void *data,
-                                                  char *path);
+static int          _ecore_desktop_menu_check_app(void *data,
+                                                  const char *path);
 
 static int          _ecore_desktop_menu_merge(const void *data,
                                               Ecore_Desktop_Tree * tree,
@@ -203,6 +203,7 @@
                  ecore_desktop_tree_foreach(menu_xml, 0,
                                             _ecore_desktop_menu_generate,
                                             &data);
+
                  data.unallocated = TRUE;
                  ecore_desktop_tree_foreach(menu_xml, 0,
                                             _ecore_desktop_menu_generate,
@@ -562,7 +563,7 @@
 }
 
 static int
-_ecore_desktop_menu_check_directory(const void *data, char *path)
+_ecore_desktop_menu_check_directory(void *data, const char *path)
 {
    char               *p;
    Ecore_Desktop_Tree *merge;
@@ -584,7 +585,7 @@
 }
 
 static int
-_ecore_desktop_menu_check_menu(const void *data, char *path)
+_ecore_desktop_menu_check_menu(void *data, const char *path)
 {
    char               *p;
    Ecore_Desktop_Tree *merge;
@@ -606,10 +607,11 @@
 }
 
 static int
-_ecore_desktop_menu_legacy_menu_dir(const void *data, char *path)
+_ecore_desktop_menu_legacy_menu_dir(void *data, const char *path)
 {
    struct _ecore_desktop_menu_legacy_data *legacy_data;
    Ecore_Desktop_Tree *menu;
+   char               *temp_path;
    int                 start;
    int                 i, count = 0;
 
@@ -635,45 +637,50 @@
 
    start = legacy_data->length;
    count = 0;
-   for (i = legacy_data->length; path[i] != '\0'; i++)
-     {
-       if (path[i] == '/')
-         {
-            if (count >= legacy_data->level)
-              {
-                 path[i] = '\0';
-                 menu = _ecore_desktop_menu_create_menu();
-                 if (menu)
-                   {
-                      char                temp[PATH_MAX];
-
-                      sprintf(temp, "<MENU <   L> <%s> <>", &path[start]);
-                      menu->elements[0].element = strdup(temp);
-                      ecore_desktop_tree_track(menu,
+   temp_path = strdup(path);
+   if (temp_path)
+      {
+         for (i = legacy_data->length; temp_path[i] != '\0'; i++)
+           {
+             if (temp_path[i] == '/')
+               {
+                  if (count >= legacy_data->level)
+                    {
+                       temp_path[i] = '\0';
+                       menu = _ecore_desktop_menu_create_menu();
+                       if (menu)
+                         {
+                            char                temp[PATH_MAX];
+
+                            sprintf(temp, "<MENU <   L> <%s> <>", 
&temp_path[start]);
+                            menu->elements[0].element = strdup(temp);
+                            ecore_desktop_tree_track(menu,
                                                menu->elements[0].element);
-                      sprintf(temp, "<MENU_PATH %s/%s", legacy_data->menu,
-                              &path[legacy_data->length]);
-                      menu->elements[1].element = strdup(temp);
-                      ecore_desktop_tree_track(menu,
+                            sprintf(temp, "<MENU_PATH %s/%s", 
legacy_data->menu,
+                              &temp_path[legacy_data->length]);
+                            menu->elements[1].element = strdup(temp);
+                            ecore_desktop_tree_track(menu,
                                                menu->elements[1].element);
 
-                      ecore_desktop_tree_add_child(legacy_data->current, menu);
-                      /*  This is not needed, but if it was, this is where it 
would go.
-                       * sprintf(temp, "<AppDir %s/", path);
-                       * ecore_desktop_tree_extend(menu, temp);
-                       */
-                      sprintf(temp, "<DirectoryDir %s/", path);
-                      ecore_desktop_tree_extend(menu, temp);
-
-                      legacy_data->current = menu;
-                      legacy_data->level++;
-                   }
-                 path[i] = '/';
-              }
-            start = i + 1;
-            count++;
-         }
-     }
+                            ecore_desktop_tree_add_child(legacy_data->current, 
menu);
+                            /*  This is not needed, but if it was, this is 
where it would go.
+                             * sprintf(temp, "<AppDir %s/", temp_path);
+                             * ecore_desktop_tree_extend(menu, temp);
+                             */
+                            sprintf(temp, "<DirectoryDir %s/", temp_path);
+                            ecore_desktop_tree_extend(menu, temp);
+
+                            legacy_data->current = menu;
+                            legacy_data->level++;
+                         }
+                       temp_path[i] = '/';
+                    }
+                  start = i + 1;
+                  count++;
+               }
+           }
+         free(temp_path);
+      }
 
    legacy_data->level = count;
 
@@ -681,10 +688,11 @@
 }
 
 static int
-_ecore_desktop_menu_legacy_menu(const void *data, char *path)
+_ecore_desktop_menu_legacy_menu(void *data, const char *path)
 {
    struct _ecore_desktop_menu_legacy_data *legacy_data;
-   char               *menu_path, *file;
+   char               *menu_path;
+   char               *file;
    char                temp[PATH_MAX];
    int                 i, count = 0, menu_count = 0;
 
@@ -741,7 +749,7 @@
    menu_count = strlen(menu_path);
    if (menu_count)
       menu_count++;
-   file = &path[legacy_data->length + menu_count];
+   file = (char *) &path[legacy_data->length + menu_count];
    count = strlen(file);
 
    if (strcmp(".directory", file) == 0)
@@ -772,6 +780,9 @@
          }
        sprintf(temp, "%s%s", legacy_data->prefix, file);
        ecore_hash_set(pool, strdup(temp), strdup(path));
+#ifdef DEBUG
+        printf("POOLING - _ecore_desktop_menu_legacy_menu(void *data, %s) - %s 
- %s\n", path, file, temp);
+#endif
        if (rules->size > 0)
          {
             rules = (Ecore_Desktop_Tree *) rules->elements[0].element;
@@ -779,6 +790,10 @@
             ecore_desktop_tree_extend(rules, temp);
          }
      }
+#ifdef DEBUG
+   else
+      printf("PROBLEM - _ecore_desktop_menu_legacy_menu(void *data, %s) - 
%s\n", path, file);
+#endif
 
    return 0;
 }
@@ -942,7 +957,7 @@
 }
 
 static int
-_ecore_desktop_menu_check_app(const void *data, char *path)
+_ecore_desktop_menu_check_app(void *data, const char *path)
 {
    char               *p;
    struct _ecore_desktop_menu_expand_apps_data *our_data;
@@ -963,8 +978,15 @@
                     if (file[i] == '/')
                        file[i] = '-';
                  ecore_hash_set(our_data->pool, file, strdup(path));
+#ifdef DEBUG
+                  printf("POOLING - _ecore_desktop_menu_check_app(void *data, 
%s) - %s\n", path, file);
+#endif
               }
          }
+#ifdef DEBUG
+       else
+          printf("PROBLEM - _ecore_desktop_menu_check_app(void *data, %s)\n", 
path);
+#endif
      }
 
    return 1;
@@ -1425,6 +1447,9 @@
    node = (Ecore_Hash_Node *) value;
    key = (char *)node->key;
    app = (char *)node->value;
+#ifdef DEBUG
+   printf("CHECKING %s - %s\n", key, app);
+#endif
    if (!ecore_hash_get(pool, key))
       ecore_hash_set(pool, strdup(key), strdup(app));
 }
@@ -1456,16 +1481,16 @@
          {
             ecore_hash_set(generate_data->apps, key, strdup(app));
 #ifdef DEBUG
-            printf("INCLUDING %s%s\n",
-                   ((generate_data->unallocated) ? "UNALLOCATED " : ""), key);
+            printf("INCLUDING %s%s - %s\n",
+                   ((generate_data->unallocated) ? "UNALLOCATED " : ""), key, 
app);
 #endif
          }
        else
          {
             ecore_hash_remove(generate_data->apps, key);
 #ifdef DEBUG
-            printf("EXCLUDING %s%s\n",
-                   ((generate_data->unallocated) ? "UNALLOCATED " : ""), key);
+            printf("EXCLUDING %s%s - %s\n",
+                   ((generate_data->unallocated) ? "UNALLOCATED " : ""), key, 
app);
 #endif
          }
      }
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_desktop/ecore_desktop_paths.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- ecore_desktop_paths.c       17 Aug 2006 20:24:36 -0000      1.8
+++ ecore_desktop_paths.c       18 Aug 2006 21:52:33 -0000      1.9
@@ -250,6 +250,8 @@
  * only the first file found will be returned.  If func is defined, then each
  * file found will be passed to func, until func returns 1.
  *
+ * The returned string will have to be freed eventually.
+ *
  * @param   type The type of directories to search.
  * @param   file The file to search for.
  * @param   sub Should we search sub directories.
@@ -257,9 +259,9 @@
  * @param   data A pointer to pass on to func.
  */
 char               *
-ecore_desktop_paths_file_find(Ecore_List * paths, char *file, int sub,
-                                   int (*func) (const void *data, char *path),
-                                   const void *data)
+ecore_desktop_paths_file_find(Ecore_List * paths, const char *file, const int 
sub,
+                                   int (*func) (void *data, const char *path),
+                                   void *data)
 {
    char               *path = NULL, *this_path;
    char                temp[PATH_MAX];
@@ -270,13 +272,14 @@
        ecore_list_goto_first(paths);
        while ((this_path = ecore_list_next(paths)) != NULL)
          {
-            sprintf(temp, "%s%s", this_path, file);
+            snprintf(temp, PATH_MAX, "%s%s", this_path, file);
             if (stat(temp, &path_stat) == 0)
               {
-                 /* FIXME: This is defensive but leaks. */
+                  if (path)
+                     free(path);
                  path = strdup(temp);
                  if (func)
-                    if (func(data, path))
+                    if (func(data, temp))
                        break;
               }
             else if (sub)
@@ -536,11 +539,11 @@
 }
 
 char               *
-ecore_desktop_paths_recursive_search(char *path, char *file,
-                                    int (*dir_func) (const void *data,
-                                                     char *path),
-                                    int (*func) (const void *data, char *path),
-                                    const void *data)
+ecore_desktop_paths_recursive_search(const char *path, const char *file,
+                                    int (*dir_func) (void *data,
+                                                     const char *path),
+                                    int (*func) (void *data, const char *path),
+                                    void *data)
 {
    char               *fpath = NULL;
    DIR                *dir = NULL;
@@ -554,7 +557,7 @@
        while ((script = readdir(dir)) != NULL)
          {
             struct stat         script_stat;
-            char                info_text[4096];
+            char                info_text[PATH_MAX];
 
             sprintf(info_text, "%s%s", path, script->d_name);
             if ((stat(info_text, &script_stat) == 0))
@@ -564,7 +567,7 @@
                       if ((strcmp(basename(info_text), ".") != 0)
                           && (strcmp(basename(info_text), "..") != 0))
                         {
-                           sprintf(info_text, "%s%s/", path, script->d_name);
+                           snprintf(info_text, PATH_MAX, "%s%s/", path, 
script->d_name);
                            if (dir_func)
                               if (dir_func(data, info_text))
                                  break;
@@ -581,7 +584,8 @@
                         {
                            if (strcmp(basename(info_text), file) == 0)
                              {
-                                /* FIXME: This is defensive but leaks. */
+                                if (fpath)
+                                   free(fpath);
                                 fpath = strdup(info_text);
                                 if (func)
                                    if (func(data, path))



-------------------------------------------------------------------------
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

Reply via email to