Re: [evolution-patches] (Calendar) Fix for broken attachments



Looks fine except a few.

On Wed, 2005-08-10 at 21:52 -0700, Carsten Guenther wrote:
> ===================================================================
> RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/comp-editor.c,v
> retrieving revision 1.145
> diff -u -p -r1.145 comp-editor.c
> --- comp-editor.c       9 Aug 2005 22:10:24 -0000       1.145
> +++ comp-editor.c       11 Aug 2005 04:49:19 -0000
> @@ -614,6 +614,7 @@ get_attachment_list (CompEditor *editor)
>                 CamelStream *stream;
>                 char *attach_file_url;
>                 char *safe_fname;
> +                char *filename;
Style issue.
>         
>                 wrapper = camel_medium_get_content_object
> (CAMEL_MEDIUM (p->data));
>                         
> @@ -621,10 +622,12 @@ get_attachment_list (CompEditor *editor)
>                  * as a mime part file into the directory denoting the
>                  * calendar source */
>                 safe_fname =
> camel_file_util_safe_filename(camel_mime_part_get_filename
> ((CamelMimePart *)p->data));
> -               attach_file_url = g_strconcat (local_store,
> -                                              comp_uid,  "-",
> -                                              safe_fname,
> -                                              NULL); 
> +
> +                filename = g_strdup_printf ("%s-%s", comp_uid,
> safe_fname);
> +
> +                attach_file_url = g_build_path (G_DIR_SEPARATOR_S,
> local_store, filename, NULL);
> +
> +                g_free (filename);
>                 g_free (safe_fname);
>  
>                 stream = camel_stream_fs_new_with_name((const char *)
> attach_file_url+7, O_RDWR|O_CREAT|O_TRUNC, 0600);
> @@ -1000,7 +1003,8 @@ attachment_bar_icon_clicked_cb (EAttachm
>                 if (p) {
>                         EAttachment *attachment;
>                         GSList *list;
> -                       const char *comp_uid= NULL;
> +                       const char *comp_uid = NULL;
> +                        char *filename = NULL;
>                         const char *local_store =
> e_cal_get_local_attachment_store (editor->priv->client);
>  
>                         e_cal_component_get_uid (editor->priv->comp,
> &comp_uid);                        
> @@ -1008,19 +1012,21 @@ attachment_bar_icon_clicked_cb (EAttachm
>                         list = e_attachment_bar_get_attachment (bar,
> num);
>                         attachment = list->data;
>                         g_slist_free (list);
> +
> +                        filename = g_strdup_printf ("%s-%s",
> +                                                    comp_uid,
> +
> camel_mime_part_get_filename(attachment->body));
> +
> +                        attach_file_url = g_build_path
> (G_DIR_SEPARATOR_S, local_store, filename, NULL);
>                         
> -                       attach_file_url = g_strconcat (local_store,
> -                                                       comp_uid,
> -                                                       "-",
> -                                                       camel_mime_part_get_filename(attachment->body),
> -                                                       NULL);
> -                                               
>                         /* launch the url now */
>                         /* TODO should send GError and handle error
> conditions
>                          * here */
>                         gnome_url_show (attach_file_url, &error);
>                         if (error)
> -                               g_message ("DEBUG: Launch
> failed :(\n");
> +                               g_message ("DEBUG: gnome_url_show(%s)
> failed\n", attach_file_url);
> +
> +                        g_free (filename);
>                         g_free (attach_file_url); }
>                 return TRUE;
>         } else 
> @@ -1153,7 +1159,6 @@ button_press_event (GtkWidget *widget, G
>         EAttachmentBar *bar = (EAttachmentBar *)widget;
>         GnomeIconList *icon_list = GNOME_ICON_LIST(widget);
>         int icon_number;
> -       printf("dd\n");
>         if (event->button != 3)
>                 return FALSE;
>         
> @@ -2083,9 +2088,13 @@ set_attachment_list (CompEditor *editor,
>         
>                 camel_mime_part_set_disposition (part, "attachment");
>  
> -               camel_mime_part_set_filename (part,
> -                                             attach_filename + strlen
> (local_store)+ 
> -                                               strlen (comp_uid) +
> 1); 
> +                char *ptr = strstr(attach_filename, comp_uid);
> +                if (ptr) {
> +                        ptr += strlen(comp_uid);
> +                        if (*ptr++ == '-')
> +                               camel_mime_part_set_filename (part,
> ptr); 
> +                }
> +
>                 e_attachment_bar_attach_mime_part ((EAttachmentBar *)
> editor->priv->attachment_bar, part);
>  
>                 camel_object_unref (part);
> 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]