{
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.
const gchar *bcc, const gchar* subject, const gchar* body, GSList *attachments)
{
osso_rpc_t retval;
-
+
gchar *attachments_str = get_attachments_string(attachments);
- const osso_return_t ret = osso_rpc_run_with_defaults(osso_context,
+ const osso_return_t ret = osso_rpc_run_with_defaults(osso_context,
MODEST_DBUS_NAME,
MODEST_DBUS_METHOD_COMPOSE_MAIL, &retval,
DBUS_TYPE_STRING, to,
DBUS_TYPE_STRING, body,
DBUS_TYPE_STRING, attachments_str,
DBUS_TYPE_INVALID);
-
+
+ g_free (attachments_str);
+
if (ret != OSSO_OK) {
printf("debug: %s: osso_rpc_run() failed.\n", __FUNCTION__);
return FALSE;
} else {
printf("debug: %s: osso_rpc_run() succeeded.\n", __FUNCTION__);
}
-
+
osso_rpc_free_val(&retval);
- g_free (attachments_str);
-
+
return TRUE;
}