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

-- 


Reply via email to