summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2014-09-25 15:09:36 +0100
committerDaniel Kolesa <d.kolesa@samsung.com>2014-09-25 15:09:36 +0100
commit13a9650491edac356c098a2c605a444d2e16af09 (patch)
treefd6ecba5fe727c1da2b7b5e3ed1490e679036a60
parenta1552fe6a9f8fc07929a68dafc0413c5338bcd61 (diff)
downloadefl-13a9650491edac356c098a2c605a444d2e16af09.tar.gz
eolian: properly replace commas in event_c_name_get and cleanup generator
-rw-r--r--src/bin/eolian/eo_generator.c40
-rw-r--r--src/lib/eolian/database_event_api.c2
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);
}