Enlightenment CVS committal
Author : pfritz
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore
Modified Files:
ecore_path.c ecore_plugin.c
Log Message:
move ecore_plugin_available_get() to ecore_plugin.c
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore/ecore_path.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- ecore_path.c 2 Mar 2008 02:01:11 -0000 1.27
+++ ecore_path.c 30 May 2008 10:18:04 -0000 1.28
@@ -211,84 +211,3 @@
return avail;
}
-/**
- * Retrieves a list of all available plugins in the given path.
- * @param group_id The identifier for the given path.
- * @return A pointer to a newly allocated list of all plugins found in the
- * paths identified by @p group_id. @c NULL otherwise.
- * @ingroup Ecore_Plugin
- */
-EAPI Ecore_List *
-ecore_plugin_available_get(Ecore_Path_Group *group)
-{
- Ecore_List *avail = NULL;
- Ecore_Hash *plugins = NULL;
- char *path;
-
- CHECK_PARAM_POINTER_RETURN("group", group, NULL);
-
- if (!group->paths || ecore_list_empty_is(group->paths))
- return NULL;
-
- ecore_list_first_goto(group->paths);
- plugins = ecore_hash_new(ecore_str_hash, ecore_str_compare);
- ecore_hash_free_key_cb_set(plugins, free);
-
- while ((path = ecore_list_next(group->paths)) != NULL)
- {
- DIR *dir;
- struct stat st;
- struct dirent *d;
-
- if (stat(path, &st) < 0)
- continue;
-
- if (!S_ISDIR(st.st_mode))
- continue;
-
- dir = opendir(path);
-
- if (!dir)
- continue;
-
- while ((d = readdir(dir)) != NULL)
- {
- char ppath[PATH_MAX];
- char *ext;
-
- if (*d->d_name == '.')
- continue;
-
- if (!ecore_str_has_suffix(d->d_name, SHARED_LIB_SUFFIX))
- continue;
-
- snprintf(ppath, PATH_MAX, "%s/%s", path, d->d_name);
-
- stat(ppath, &st);
-
- if (!S_ISREG(st.st_mode))
- continue;
-
- ecore_strlcpy(ppath, d->d_name, sizeof(ppath));
- ext = strrchr(ppath, '.');
- *ext = '\0';
-
- if (!ecore_hash_get(plugins, ppath))
- {
- char *key;
-
- key = strdup(ppath);
- ecore_hash_set(plugins, key, key);
- }
- }
- closedir(dir);
- }
-
- ecore_hash_free_key_cb_set(plugins, NULL);
- avail = ecore_hash_keys(plugins);
- ecore_list_free_cb_set(avail, free);
- ecore_hash_destroy(plugins);
-
- return avail;
-}
-
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore/ecore_plugin.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- ecore_plugin.c 26 May 2008 05:16:32 -0000 1.18
+++ ecore_plugin.c 30 May 2008 10:18:04 -0000 1.19
@@ -150,3 +150,85 @@
return ret;
}
+
+/**
+ * Retrieves a list of all available plugins in the given path.
+ * @param group_id The identifier for the given path.
+ * @return A pointer to a newly allocated list of all plugins found in the
+ * paths identified by @p group_id. @c NULL otherwise.
+ * @ingroup Ecore_Plugin
+ */
+EAPI Ecore_List *
+ecore_plugin_available_get(Ecore_Path_Group *group)
+{
+ Ecore_List *avail = NULL;
+ Ecore_Hash *plugins = NULL;
+ char *path;
+
+ CHECK_PARAM_POINTER_RETURN("group", group, NULL);
+
+ if (!group->paths || ecore_list_empty_is(group->paths))
+ return NULL;
+
+ ecore_list_first_goto(group->paths);
+ plugins = ecore_hash_new(ecore_str_hash, ecore_str_compare);
+ ecore_hash_free_key_cb_set(plugins, free);
+
+ while ((path = ecore_list_next(group->paths)) != NULL)
+ {
+ DIR *dir;
+ struct stat st;
+ struct dirent *d;
+
+ if (stat(path, &st) < 0)
+ continue;
+
+ if (!S_ISDIR(st.st_mode))
+ continue;
+
+ dir = opendir(path);
+
+ if (!dir)
+ continue;
+
+ while ((d = readdir(dir)) != NULL)
+ {
+ char ppath[PATH_MAX];
+ char *ext;
+
+ if (*d->d_name == '.')
+ continue;
+
+ if (!ecore_str_has_suffix(d->d_name, SHARED_LIB_SUFFIX))
+ continue;
+
+ snprintf(ppath, PATH_MAX, "%s/%s", path, d->d_name);
+
+ stat(ppath, &st);
+
+ if (!S_ISREG(st.st_mode))
+ continue;
+
+ ecore_strlcpy(ppath, d->d_name, sizeof(ppath));
+ ext = strrchr(ppath, '.');
+ *ext = '\0';
+
+ if (!ecore_hash_get(plugins, ppath))
+ {
+ char *key;
+
+ key = strdup(ppath);
+ ecore_hash_set(plugins, key, key);
+ }
+ }
+ closedir(dir);
+ }
+
+ ecore_hash_free_key_cb_set(plugins, NULL);
+ avail = ecore_hash_keys(plugins);
+ ecore_list_free_cb_set(avail, free);
+ ecore_hash_destroy(plugins);
+
+ return avail;
+}
+
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs