diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2021-07-14 15:02:51 +0200 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2021-07-14 15:03:57 +0200 |
commit | 364cc9dcba7e1a03403bb52ebc2609fa5fb7f7e8 (patch) | |
tree | f06d46e6071dcc20a89f08ceeca017013415be33 /src | |
parent | d6a896ef96db482ef11cb4ab5325ffa1f2ebe35f (diff) | |
download | efl-364cc9dcba7e1a03403bb52ebc2609fa5fb7f7e8.tar.gz |
eldbus: do not generate method names with - in name
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/eldbus/source_client.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/bin/eldbus/source_client.c b/src/bin/eldbus/source_client.c index 8860f0665b..c7ba1b3795 100644 --- a/src/bin/eldbus/source_client.c +++ b/src/bin/eldbus/source_client.c @@ -428,11 +428,23 @@ prop_cb_get(const DBus_Property *prop) } } +static char* +_escape(const char *name) { + Eina_Strbuf *buf = eina_strbuf_new(); + + eina_strbuf_append(buf, name); + eina_strbuf_replace_all(buf, "-", "_"); + + return eina_strbuf_release(buf); +} + + static void source_client_property_generate_get(const DBus_Property *prop, Eina_Strbuf *c_code, Eina_Strbuf *h) { + char *cb_name_escaped = _escape(prop->cb_name); //callback - eina_strbuf_append_printf(c_code, "\nstatic void\n%s(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending)\n{\n", prop->cb_name); + eina_strbuf_append_printf(c_code, "\nstatic void\n%s(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending)\n{\n", cb_name_escaped); eina_strbuf_append_printf(c_code, " void *user_data = eldbus_pending_data_del(pending, \"__user_data\");\n"); eina_strbuf_append_printf(c_code, " const char *error, *error_msg;\n"); eina_strbuf_append_printf(c_code, " %s cb = data;\n", prop_cb_get(prop)); @@ -488,6 +500,8 @@ source_client_property_generate_get(const DBus_Property *prop, Eina_Strbuf *c_co eina_strbuf_append_printf(c_code, " eldbus_pending_data_set(p, \"__user_proxy\", proxy);\n"); eina_strbuf_append_printf(c_code, " return p;\n"); eina_strbuf_append_printf(c_code, "}\n"); + + free(cb_name_escaped); } static void |