From bae410baa6cdf2110b87c0d1cfae899c3c984ebd Mon Sep 17 00:00:00 2001 From: Paul Mangan Date: Fri, 24 May 2002 10:52:05 +0000 Subject: [PATCH 1/1] fix memory leak in compose_redirect_write_headers_from_headerlist() add Subject and Resent-Message-ID to compose_redirect_write_headers() Received, Subject, and X-UIDL are filtered out in compose_redirect_write_to_file() --- ChangeLog.claws | 10 ++++++++++ configure.in | 2 +- src/compose.c | 47 ++++++++++++++++++++++++++++++++++------------- 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/ChangeLog.claws b/ChangeLog.claws index 868e8fe0f..cb9e3a2f5 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,13 @@ +2002-05-24 [paul] 0.7.6claws14 + + * src/compose.c + fix memory leak in + compose_redirect_write_headers_from_headerlist() + add Subject and Resent-Message-ID to + compose_redirect_write_headers() + Received, Subject, and X-UIDL are filtered out in + compose_redirect_write_to_file() + 2002-05-23 [paul] 0.7.6claws13 * src/compose.[ch] diff --git a/configure.in b/configure.in index 2860fc30d..4d72217bc 100644 --- a/configure.in +++ b/configure.in @@ -8,7 +8,7 @@ MINOR_VERSION=7 MICRO_VERSION=6 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws13 +EXTRA_VERSION=claws14 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/compose.c b/src/compose.c index 95b1d679a..99938cde1 100644 --- a/src/compose.c +++ b/src/compose.c @@ -2860,17 +2860,14 @@ static gint compose_redirect_write_headers_from_headerlist(Compose *compose, GSList *list; ComposeHeaderEntry *headerentry; gchar *headerentryname; - gchar *header_w_colon; gchar *cc_hdr; gchar *to_hdr; debug_print(_("Writing redirect header\n")); - header_w_colon = g_strconcat("To:", NULL); - to_hdr = (prefs_common.trans_hdr ? gettext(header_w_colon) : header_w_colon); - header_w_colon = g_strconcat("Cc:", NULL); - cc_hdr = (prefs_common.trans_hdr ? gettext(header_w_colon) : header_w_colon); - + cc_hdr = prefs_common.trans_hdr ? _("Cc:") : "Cc:"; + to_hdr = prefs_common.trans_hdr ? _("To:") : "To:"; + first_address = TRUE; for(list = compose->header_list; list; list = list->next) { headerentry = ((ComposeHeaderEntry *)list->data); @@ -2912,11 +2909,11 @@ static gint compose_redirect_write_headers(Compose *compose, FILE *fp) g_return_val_if_fail(compose->account != NULL, -1); g_return_val_if_fail(compose->account->address != NULL, -1); - /* Date */ + /* Resent-Date */ get_rfc822_date(buf, sizeof(buf)); fprintf(fp, "Resent-Date: %s\n", buf); - /* From */ + /* Resent-From */ if (compose->account->name && *compose->account->name) { compose_convert_header (buf, sizeof(buf), compose->account->name, @@ -2926,7 +2923,25 @@ static gint compose_redirect_write_headers(Compose *compose, FILE *fp) } else fprintf(fp, "Resent-From: %s\n", compose->account->address); - /* To */ + /* Subject */ + str = gtk_entry_get_text(GTK_ENTRY(compose->subject_entry)); + if (*str != '\0') { + Xstrdup_a(str, str, return -1); + g_strstrip(str); + if (*str != '\0') { + compose_convert_header(buf, sizeof(buf), str, + strlen("Subject: ")); + fprintf(fp, "Subject: %s\n", buf); + } + } + + /* Resent-Message-ID */ + if (compose->account->gen_msgid) { + compose_generate_msgid(compose, buf, sizeof(buf)); + fprintf(fp, "Resent-Message-Id: <%s>\n", buf); + compose->msgid = g_strdup(buf); + } + compose_redirect_write_headers_from_headerlist(compose, fp); /* separator between header and body */ @@ -2961,10 +2976,16 @@ static gint compose_redirect_write_to_file(Compose *compose, const gchar *file) while (procheader_get_unfolded_line(buf, sizeof(buf), fp)) { /* should filter returnpath, delivered-to */ - if ((g_strncasecmp(buf, "Return-Path:", - strlen("Return-Path:")) == 0) - || (g_strncasecmp(buf, "Delivered-To:", - strlen("Delivered-To:")) == 0)) + if (g_strncasecmp(buf, "Return-Path:", + strlen("Return-Path:")) == 0 || + g_strncasecmp(buf, "Delivered-To:", + strlen("Delivered-To:")) == 0 || + g_strncasecmp(buf, "Received:", + strlen("Received:")) == 0 || + g_strncasecmp(buf, "Subject:", + strlen("Subject:")) == 0 || + g_strncasecmp(buf, "X-UIDL:", + strlen("X-UIDL:")) == 0) continue; if (fputs(buf, fdest) == -1) -- 2.25.1