talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 137d4d92f6d197f5d6aec5887d08281d3f2743d6
parent 4984812b23b97287b892a07f13ad73bd2245d81b
Author: wwp <wwp@free.fr>
Date:   Sat, 17 Mar 2018 21:53:20 +0100

Don't compute charset unless necessary (vcalviewer_get_uid_from_mimeinfo()),
don't compute charset at all when not used (vcalviewer_get_request_values(),
vcalviewer_get_reply_values(), de facto solves CID 1372373), possible remnants
of an old implementation that I couldn't even found in log.

Diffstat:
Msrc/plugins/vcalendar/vcalendar.c | 27++++++---------------------
1 file changed, 6 insertions(+), 21 deletions(-)

diff --git a/src/plugins/vcalendar/vcalendar.c b/src/plugins/vcalendar/vcalendar.c @@ -652,18 +652,18 @@ gchar *vcalviewer_get_uid_from_mimeinfo(MimeInfo *mimeinfo) gchar *res = NULL; VCalEvent *event = NULL; - if (!charset) - charset = CS_WINDOWS_1252; - - if (!strcasecmp(charset, CS_ISO_8859_1)) - charset = CS_WINDOWS_1252; - if (procmime_get_part(tmpfile, mimeinfo) < 0) { g_warning("Can't get mimepart file"); g_free(tmpfile); return NULL; } + if (!charset) + charset = CS_WINDOWS_1252; + + if (!strcasecmp(charset, CS_ISO_8859_1)) + charset = CS_WINDOWS_1252; + compstr = file_read_to_str(tmpfile); event = vcal_get_event_from_ical(compstr, charset); @@ -680,22 +680,14 @@ gchar *vcalviewer_get_uid_from_mimeinfo(MimeInfo *mimeinfo) static void vcalviewer_get_request_values(VCalViewer *vcalviewer, MimeInfo *mimeinfo, gboolean is_todo) { VCalEvent *saved_event = NULL; - const gchar *charset = procmime_mimeinfo_get_parameter(mimeinfo, "charset"); const gchar *saveme = procmime_mimeinfo_get_parameter(mimeinfo, "vcalsave"); if (!vcalviewer->event) return; - if (!charset) - charset = CS_WINDOWS_1252; - - if (!strcasecmp(charset, CS_ISO_8859_1)) - charset = CS_WINDOWS_1252; - /* see if we have it registered and more recent */ saved_event = vcal_manager_load_event(vcalviewer->event->uid); if (saved_event && saved_event->sequence >= vcalviewer->event->sequence) { - charset = CS_INTERNAL; saved_event->method = vcalviewer->event->method; vcalviewer_display_event(vcalviewer, saved_event); vcal_manager_free_event(saved_event); @@ -714,7 +706,6 @@ static void vcalviewer_get_request_values(VCalViewer *vcalviewer, MimeInfo *mime static void vcalviewer_get_reply_values(VCalViewer *vcalviewer, MimeInfo *mimeinfo) { - const gchar *charset = procmime_mimeinfo_get_parameter(mimeinfo, "charset"); VCalEvent *saved_event = NULL; gchar *attendee = NULL, *label = NULL; Answer *answer = NULL; @@ -722,12 +713,6 @@ static void vcalviewer_get_reply_values(VCalViewer *vcalviewer, MimeInfo *mimein if (!vcalviewer->event) return; - if (!charset) - charset = CS_WINDOWS_1252; - - if (!strcasecmp(charset, CS_ISO_8859_1)) - charset = CS_WINDOWS_1252; - if (!vcalviewer->event->answers || g_slist_length(vcalviewer->event->answers) > 1) { g_warning("strange, no answers or more than one"); }