diff options
-rw-r--r-- | em-format/em-format.c | 19 | ||||
-rw-r--r-- | widgets/misc/e-attachment.c | 5 |
2 files changed, 17 insertions, 7 deletions
diff --git a/em-format/em-format.c b/em-format/em-format.c index f07d6e3c5a..b82420ae7a 100644 --- a/em-format/em-format.c +++ b/em-format/em-format.c @@ -1428,12 +1428,19 @@ em_format_describe_part (CamelMimePart *part, g_free (content_type); g_string_append_printf (stext, _("%s attachment"), desc ? desc : mime_type); g_free (desc); - if ((filename = camel_mime_part_get_filename (part))) - g_string_append_printf(stext, " (%s)", filename); - if ((description = camel_mime_part_get_description(part)) && - (*description != 0) && - !(filename && (strcmp(filename, description) == 0))) - g_string_append_printf(stext, ", \"%s\"", description); + + filename = camel_mime_part_get_filename (part); + description = camel_mime_part_get_description (part); + + if (filename != NULL && *filename != '\0') { + gchar *basename = g_path_get_basename (filename); + g_string_append_printf (stext, " (%s)", basename); + g_free (basename); + } + + if (description != NULL && *description != '\0' && + g_strcmp0 (filename, description) != 0) + g_string_append_printf (stext, ", \"%s\"", description); return g_string_free (stext, FALSE); } diff --git a/widgets/misc/e-attachment.c b/widgets/misc/e-attachment.c index e8ba75abee..468e164418 100644 --- a/widgets/misc/e-attachment.c +++ b/widgets/misc/e-attachment.c @@ -1778,11 +1778,14 @@ attachment_load_from_mime_part (LoadContext *load_context) } g_free (allocated); + /* Strip any path components from the filename. */ string = camel_mime_part_get_filename (mime_part); if (string == NULL) /* Translators: Default attachment filename. */ string = _("attachment.dat"); - g_file_info_set_display_name (file_info, string); + allocated = g_path_get_basename (string); + g_file_info_set_display_name (file_info, allocated); + g_free (allocated); attribute = G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION; string = camel_mime_part_get_description (mime_part); |