From 981d3d17680fd8592c8593732b2640f17ad6d572 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 26 Sep 2011 11:02:47 +0200 Subject: Bug #655252 - Need to escape the comp_uid part of a path --- calendar/gui/dialogs/comp-editor.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'calendar/gui') diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index eaf779df33..fc062a0de9 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -43,6 +43,7 @@ #include #include +#include #include #include @@ -302,7 +303,7 @@ get_attachment_list (CompEditor *editor) GSList *list = NULL; const gchar *comp_uid = NULL; const gchar *local_store; - gchar *path; + gchar *filename_prefix, *tmp; gint ii; struct { @@ -311,6 +312,9 @@ get_attachment_list (CompEditor *editor) GtkWindow *parent; } status; + e_cal_component_get_uid (editor->priv->comp, &comp_uid); + g_return_val_if_fail (comp_uid != NULL, NULL); + status.uris = NULL; status.done = FALSE; status.parent = g_object_ref (editor); @@ -318,17 +322,20 @@ get_attachment_list (CompEditor *editor) view = E_ATTACHMENT_VIEW (editor->priv->attachment_view); store = e_attachment_view_get_store (view); + tmp = g_strdup (comp_uid); + e_filename_make_safe (tmp); + filename_prefix = g_strconcat (tmp, "-", NULL); + g_free (tmp); + local_store = e_cal_client_get_local_attachment_store (editor->priv->cal_client); - e_cal_component_get_uid (editor->priv->comp, &comp_uid); - path = g_build_path ("/", local_store, comp_uid, NULL); - destination = g_file_new_for_path (path); - g_free (path); + destination = g_file_new_for_path (local_store); e_attachment_store_save_async ( - store, destination, (GAsyncReadyCallback) - attachment_save_finished, &status); + store, destination, filename_prefix, + (GAsyncReadyCallback) attachment_save_finished, &status); g_object_unref (destination); + g_free (filename_prefix); /* We can't return until we have results, so crank * the main loop until the callback gets triggered. */ -- cgit v1.2.3