diff options
author | Daniel Kolesa <d.kolesa@samsung.com> | 2014-09-25 15:09:36 +0100 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@samsung.com> | 2014-09-25 15:09:36 +0100 |
commit | 13a9650491edac356c098a2c605a444d2e16af09 (patch) | |
tree | fd6ecba5fe727c1da2b7b5e3ed1490e679036a60 | |
parent | a1552fe6a9f8fc07929a68dafc0413c5338bcd61 (diff) | |
download | efl-13a9650491edac356c098a2c605a444d2e16af09.tar.gz |
eolian: properly replace commas in event_c_name_get and cleanup generator
-rw-r--r-- | src/bin/eolian/eo_generator.c | 40 | ||||
-rw-r--r-- | 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 e1a7bfe1a7..31431abbfc 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 9aa597ac36..f2c98a7133 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); } |