jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=183ecab18bf333761379708c6257954605b71a1b
commit 183ecab18bf333761379708c6257954605b71a1b Author: Daniel Zaoui <daniel.za...@samsung.com> Date: Mon Apr 28 08:45:39 2014 +0300 Eolian: add API to retrieve the file name of a class --- src/lib/eolian/Eolian.h | 9 +++++++++ src/lib/eolian/eolian_database.c | 7 +++++++ src/tests/eolian/eolian_suite.c | 1 + 3 files changed, 17 insertions(+) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index e1ecbdd..63bfa65 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -193,6 +193,15 @@ EAPI const char * eolian_class_find_by_file(const char *file_name); /* + * @brief Returns the name of the file containing the given class. + * + * @param[in] class_name name of the class. + * @return the name of the file on success or NULL otherwise. + */ +EAPI const char * +eolian_class_file_get(const char *class_name); + +/* * @brief Returns the class type of the given class * * @param[in] class_name name of the class diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index afb747c..f72b3f0 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -239,6 +239,13 @@ database_class_file_set(const char *class_name, const char *file_name) } EAPI const char * +eolian_class_file_get(const char *class_name) +{ + Class_desc *cl = _class_get(class_name); + return cl ? cl->file : NULL; +} + +EAPI const char * eolian_class_find_by_file(const char *file_name) { const Eina_List *names_list = eolian_class_names_list_get(); diff --git a/src/tests/eolian/eolian_suite.c b/src/tests/eolian/eolian_suite.c index 96f1b03..e110fc5 100644 --- a/src/tests/eolian/eolian_suite.c +++ b/src/tests/eolian/eolian_suite.c @@ -156,6 +156,7 @@ START_TEST(eolian_simple_parsing) /* Parsing */ fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/class_simple.eo")); fail_if(strcmp(eolian_class_find_by_file(PACKAGE_DATA_DIR"/data/class_simple.eo"), class_name)); + fail_if(strcmp(eolian_class_file_get(class_name), PACKAGE_DATA_DIR"/data/class_simple.eo")); /* Class */ fail_if(!eolian_class_exists(class_name)); --