* eina_module: Add eina_module_find. Thanks to Fabiano Fidêncio <fidencio@profusion.mobi>.
SVN revision: 43847
This commit is contained in:
parent
1d16f186fb
commit
ffb0bf8830
|
@ -12,3 +12,4 @@ Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com>
|
||||||
Andre Dieb <andre.dieb@gmail.com>
|
Andre Dieb <andre.dieb@gmail.com>
|
||||||
Raphael Kubo da Costa <kubo@profusion.mobi>
|
Raphael Kubo da Costa <kubo@profusion.mobi>
|
||||||
Gustavo Chaves <glima@profusion.mobi>
|
Gustavo Chaves <glima@profusion.mobi>
|
||||||
|
Fabiano Fidêncio <fidencio@profusion.mobi>
|
||||||
|
|
|
@ -70,6 +70,7 @@ EAPI Eina_Array * eina_module_list_get(Eina_Array *array, const char *path, unsi
|
||||||
EAPI void eina_module_list_load(Eina_Array *list) EINA_ARG_NONNULL(1);
|
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_unload(Eina_Array *list) EINA_ARG_NONNULL(1);
|
||||||
EAPI void eina_module_list_flush(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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
|
|
|
@ -546,6 +546,37 @@ EAPI Eina_Array * eina_module_list_get(Eina_Array *array, const char *path, unsi
|
||||||
return list_get_cb_data.array;
|
return list_get_cb_data.array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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
|
* Load every module on the list of modules
|
||||||
* @param array The array of modules to load
|
* @param array The array of modules to load
|
||||||
|
|
Loading…
Reference in New Issue