q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7b4f4af8736512a29b300d9cba4ed91002619aeb
commit 7b4f4af8736512a29b300d9cba4ed91002619aeb Author: Daniel Kolesa <[email protected]> Date: Wed Jul 9 13:06:46 2014 +0100 eolian: support for structs in eolian_show --- src/lib/eolian/eolian_database.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 5d823e2..56bd848 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -1422,6 +1422,19 @@ _event_print(Eolian_Event ev, int nb_spaces) printf("%*s <%s> <%s> <%s>\n", nb_spaces + 5, "", name, type, comment); } +static void _type_print(Eolian_Type tp, Eina_Strbuf *buf); + +static Eina_Bool +_field_print(const Eina_Hash *hash EINA_UNUSED, const void *key, void *data, + void *fdata) +{ + Eina_Strbuf *buf = (Eina_Strbuf*)fdata; + eina_strbuf_append_printf(buf, "%s: ", (const char*)key); + _type_print((Eolian_Type)data, buf); + eina_strbuf_append(buf, "; "); + return EINA_TRUE; +} + static void _type_print(Eolian_Type tp, Eina_Strbuf *buf) { @@ -1462,6 +1475,14 @@ _type_print(Eolian_Type tp, Eina_Strbuf *buf) } eina_strbuf_append_char(buf, ')'); } + else if (tpp->type == EOLIAN_TYPE_STRUCT) + { + eina_strbuf_append(buf, "struct "); + if (tpp->name) eina_strbuf_append_printf(buf, "%s ", tpp->name); + eina_strbuf_append(buf, "{ "); + eina_hash_foreach(tpp->fields, _field_print, buf); + eina_strbuf_append(buf, "}"); + } if (tpp->is_own) eina_strbuf_append_char(buf, ')'); if (tpp->is_const) --
