From: Sergio Villar Senin Date: Mon, 8 Jun 2009 08:07:29 +0000 (+0200) Subject: Fixes NB#121112, dbus API does not support filenames with commas X-Git-Tag: 3.0.17-rc12~8 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=28a4212667c0f3b21eee22f520e7e77a57922886 Fixes NB#121112, dbus API does not support filenames with commas Now attachments URI's are properly escaped before transmitting them through DBus --- diff --git a/libmodest-dbus-client/libmodest-dbus-client.c b/libmodest-dbus-client/libmodest-dbus-client.c index 35041ac..7363537 100644 --- a/libmodest-dbus-client/libmodest-dbus-client.c +++ b/libmodest-dbus-client/libmodest-dbus-client.c @@ -44,24 +44,26 @@ static gchar* get_attachments_string (GSList *attachments) { if (!attachments) return NULL; - + gchar *attachments_str = g_strdup(""); - + GSList *iter = attachments; while (iter) { if (iter->data) { - gchar *tmp = g_strconcat(attachments_str, ",", (gchar *) (iter->data), NULL); + gchar *escaped; + gchar *tmp; + escaped = g_uri_escape_string ((const gchar *) (iter->data), NULL, TRUE); + tmp = g_strconcat(attachments_str, ",", escaped, NULL); + g_free(escaped); g_free(attachments_str); attachments_str = tmp; } - iter = g_slist_next(iter); } - return attachments_str; } - + /** * libmodest_dbus_client_mail_to: * @osso_context: a valid #osso_context_t object. diff --git a/src/dbus_api/modest-dbus-callbacks.c b/src/dbus_api/modest-dbus-callbacks.c index bdeb20a..4b6a4ef 100644 --- a/src/dbus_api/modest-dbus-callbacks.c +++ b/src/dbus_api/modest-dbus-callbacks.c @@ -286,7 +286,7 @@ on_idle_compose_mail(gpointer user_data) gchar **list = g_strsplit(idle_data->attachments, ",", 0); gint i = 0; for (i=0; list[i] != NULL; i++) { - attachments = g_slist_append(attachments, g_strdup(list[i])); + attachments = g_slist_append(attachments, g_uri_unescape_string (list[i], NULL)); } g_strfreev(list); } diff --git a/tests/dbus_api/test_compose_mail.c b/tests/dbus_api/test_compose_mail.c index 9abd2ae..a855675 100644 --- a/tests/dbus_api/test_compose_mail.c +++ b/tests/dbus_api/test_compose_mail.c @@ -18,7 +18,9 @@ int main(int argc, char *argv[]) /* Call the function in libmodest-dbus-client: */ - attachments = g_slist_append(attachments, "file:///usr/include/math.h,file:///usr/include/glib-2.0/glib.h"); + attachments = g_slist_append(attachments, "file:///usr/include/math.h"); + attachments = g_slist_append(attachments, "file:///usr/include/glib-2.0/glib.h"); + attachments = g_slist_append(attachments, "file:///tmp/file,coma.txt"); const gboolean ret = libmodest_dbus_client_compose_mail ( osso_context,