Andre Dieb <andre.dieb@gmail.com>
Raphael Kubo da Costa <kubo@profusion.mobi>
Gustavo Chaves <glima@profusion.mobi>
+Fabiano FidĂȘncio <fidencio@profusion.mobi>
EAPI void eina_module_list_load(Eina_Array *list) EINA_ARG_NONNULL(1);
EAPI void eina_module_list_unload(Eina_Array *list) EINA_ARG_NONNULL(1);
EAPI void eina_module_list_flush(Eina_Array *list) EINA_ARG_NONNULL(1);
+EAPI Eina_Module * eina_module_find(Eina_Array *array, char *module) EINA_ARG_NONNULL(1, 2);
/**
* @}
}
/**
+ * @brief Find an module in array.
+ *
+ * @param array The array to find the module.
+ * @param module The name of module to be searched;
+ *
+ * This function finds an @p module in an @p array;
+ * If the element is found return the module else NULL.
+ */
+EAPI Eina_Module *
+eina_module_find(Eina_Array *array, char *module)
+{
+ unsigned int i;
+ Eina_Array_Iterator iterator;
+ Eina_Module *m;
+
+ EINA_ARRAY_ITER_NEXT(array, i, m, iterator)
+ {
+ const char *file_m;
+ ssize_t len;
+
+ file_m = basename(eina_module_file_get(m));
+ len = strlen(file_m);
+ len -= sizeof(MODULE_EXTENSION) - 1;
+ if (len <= 0) continue;
+ if (!strncmp(module, file_m, len)) return m;
+ }
+
+ return NULL;
+}
+
+/**
* Load every module on the list of modules
* @param array The array of modules to load
*/