From 8a4849b1eb119f4070fc3c82f6dc882d9c06670f Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 19 Jun 2014 15:56:38 +0100 Subject: [PATCH] Eolian: Improve support (still incomplete) for namespaces. --- src/lib/eolian/eolian_database.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 5ef7804702..323f89458f 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -1389,6 +1389,22 @@ eolian_directory_scan(const char *dir) return EINA_TRUE; } +static char * +_eolian_class_to_filename(const char *filename) +{ + char *ret; + Eina_Strbuf *strbuf = eina_strbuf_new(); + eina_strbuf_append(strbuf, filename); + eina_strbuf_replace_all(strbuf, "::", "_"); + + ret = eina_strbuf_string_steal(strbuf); + eina_strbuf_free(strbuf); + + eina_str_tolower(&ret); + + return ret; +} + EAPI Eina_Bool eolian_eo_file_parse(const char *filepath) { const Eina_List *itr; @@ -1409,8 +1425,7 @@ EAPI Eina_Bool eolian_eo_file_parse(const char *filepath) { if (!eolian_class_find_by_name(inherit_name)) { - char *filename = strdup(inherit_name); - eina_str_tolower(&filename); + char *filename = _eolian_class_to_filename(inherit_name); filepath = eina_hash_find(_filenames, filename); if (!filepath) {