q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=13a9650491edac356c098a2c605a444d2e16af09
commit 13a9650491edac356c098a2c605a444d2e16af09 Author: Daniel Kolesa <[email protected]> Date: Thu Sep 25 15:09:36 2014 +0100 eolian: properly replace commas in event_c_name_get and cleanup generator --- src/bin/eolian/eo_generator.c | 40 +++++++++---------------------------- src/lib/eolian/database_event_api.c | 2 +- 2 files changed, 10 insertions(+), 32 deletions(-) diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c index e1a7bfe..31431ab 100644 --- a/src/bin/eolian/eo_generator.c +++ b/src/bin/eolian/eo_generator.c @@ -265,7 +265,7 @@ eo_header_generate(const Eolian_Class *class, Eina_Strbuf *buf) itr = eolian_class_events_get(class); EINA_ITERATOR_FOREACH(itr, event) { - const char *evname = eolian_event_c_name_get(event); + Eina_Stringshare *evname = eolian_event_c_name_get(event); const char *evdesc = eolian_event_description_get(event); Eolian_Object_Scope scope = eolian_event_scope_get(event); @@ -287,14 +287,9 @@ eo_header_generate(const Eolian_Class *class, Eina_Strbuf *buf) eina_strbuf_prepend(tmpbuf," * "); eina_strbuf_append_printf(str_ev, "/**\n%s\n */\n", eina_strbuf_string_get(tmpbuf)); - eina_strbuf_reset(tmpbuf); - eina_strbuf_append(tmpbuf, evname); + eina_strbuf_append_printf(str_ev, "#define %s (&(_%s))\n", evname, evname); + eina_strbuf_append_printf(str_extrn_ev, "EOAPI extern const Eo_Event_Description _%s;\n", evname); eina_stringshare_del(evname); - eina_strbuf_replace_all(tmpbuf, ",", "_"); - char* s = (char *)eina_strbuf_string_get(tmpbuf); - eina_str_toupper(&s); - eina_strbuf_append_printf(str_ev, "#define %s (&(_%s))\n", s, s); - eina_strbuf_append_printf(str_extrn_ev, "EOAPI extern const Eo_Event_Description _%s;\n", s); if (scope == EOLIAN_SCOPE_PROTECTED) { @@ -662,35 +657,25 @@ eo_source_beginning_generate(const Eolian_Class *class, Eina_Strbuf *buf) Eina_Iterator *itr; Eina_Strbuf *tmpbuf = eina_strbuf_new(); - Eina_Strbuf *str_ev = eina_strbuf_new(); Eolian_Event *event; itr = eolian_class_events_get(class); EINA_ITERATOR_FOREACH(itr, event) { - const char *evname = eolian_event_c_name_get(event); + Eina_Stringshare *evname = eolian_event_c_name_get(event); const char *evdesc = eolian_event_description_get(event); - char *evdesc_line1; - char *p; - - eina_strbuf_reset(str_ev); - evdesc_line1 = _source_desc_get(evdesc); - eina_strbuf_append(str_ev, evname); - eina_stringshare_del(evname); - p = (char *)eina_strbuf_string_get(str_ev); - eina_str_toupper(&p); - eina_strbuf_replace_all(str_ev, ",", "_"); + char *evdesc_line1 = _source_desc_get(evdesc); eina_strbuf_append_printf(tmpbuf, "EOAPI const Eo_Event_Description _%s =\n EO_EVENT_DESCRIPTION(\"%s\", \"%s\");\n", - eina_strbuf_string_get(str_ev), eolian_event_name_get(event), evdesc_line1); + evname, eolian_event_name_get(event), evdesc_line1); + eina_stringshare_del(evname); free(evdesc_line1); } eina_iterator_free(itr); eina_strbuf_append(buf, eina_strbuf_string_get(tmpbuf)); - eina_strbuf_free(str_ev); eina_strbuf_free(tmpbuf); return EINA_TRUE; } @@ -880,16 +865,9 @@ eo_source_end_generate(const Eolian_Class *class, Eina_Strbuf *buf) itr = eolian_class_events_get(class); EINA_ITERATOR_FOREACH(itr, event) { - const char *evname = eolian_event_c_name_get(event); - char *p; - - eina_strbuf_reset(tmpbuf); - eina_strbuf_append(tmpbuf, evname); + Eina_Stringshare *evname = eolian_event_c_name_get(event); + eina_strbuf_append_printf(str_ev, "\n %s,", evname); eina_stringshare_del(evname); - p = (char *)eina_strbuf_string_get(tmpbuf); - eina_str_toupper(&p); - eina_strbuf_replace_all(tmpbuf, ",", "_"); - eina_strbuf_append_printf(str_ev, "\n %s,", eina_strbuf_string_get(tmpbuf)); } eina_iterator_free(itr); diff --git a/src/lib/eolian/database_event_api.c b/src/lib/eolian/database_event_api.c index 9aa597a..f2c98a7 100644 --- a/src/lib/eolian/database_event_api.c +++ b/src/lib/eolian/database_event_api.c @@ -41,6 +41,6 @@ eolian_event_c_name_get(const Eolian_Event *event) snprintf(buf, sizeof(buf), "%s_EVENT_%s", event->klass->full_name, event->name); eina_str_toupper(&tmp); - while ((tmp = strchr(tmp, '.'))) *tmp = '_'; + while ((tmp = strpbrk(tmp, ".,"))) *tmp = '_'; return eina_stringshare_add(buf); } --
