aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog8
-rw-r--r--mail/mail-callbacks.c11
-rw-r--r--mail/mail-tools.c7
3 files changed, 22 insertions, 4 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 6af11e32e9..bafdfbea98 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,11 @@
+2001-09-19 Jon Trowbridge <trow@ximian.com>
+
+ * mail-callbacks.c (mail_generate_reply): Truncate extremely long
+ subjects. (inspired by bug #9158)
+
+ * mail-tools.c (mail_tool_generate_forward_subject): Truncate extremely long
+ subjects. (bug #9158)
+
2001-09-19 Jeffrey Stedfast <fejj@ximian.com>
* mail-send-recv.c (receive_update_got_store): Here too.
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c
index 70e06df2f8..7efd2523b1 100644
--- a/mail/mail-callbacks.c
+++ b/mail/mail-callbacks.c
@@ -766,6 +766,7 @@ mail_generate_reply (CamelFolder *folder, CamelMimeMessage *message, const char
EDestination **tov, **ccv;
EMsgComposer *composer;
time_t date;
+ const int max_subject_length = 1024;
composer = e_msg_composer_new ();
if (!composer)
@@ -879,9 +880,13 @@ mail_generate_reply (CamelFolder *folder, CamelMimeMessage *message, const char
subject = g_strdup ("");
else {
if (!g_strncasecmp (subject, "Re: ", 4))
- subject = g_strdup (subject);
- else
- subject = g_strdup_printf ("Re: %s", subject);
+ subject = g_strndup (subject, max_subject_length);
+ else {
+ if (strlen (subject) < max_subject_length)
+ subject = g_strdup_printf ("Re: %s", subject);
+ else
+ subject = g_strdup_printf ("Re: %.*s...", max_subject_length, subject);
+ }
}
tov = e_destination_list_to_vector (to);
diff --git a/mail/mail-tools.c b/mail/mail-tools.c
index 09603eb458..5e0d3ee9ee 100644
--- a/mail/mail-tools.c
+++ b/mail/mail-tools.c
@@ -206,11 +206,16 @@ mail_tool_generate_forward_subject (CamelMimeMessage *msg)
{
const char *subject;
char *fwd_subj;
+ const int max_subject_length = 1024;
subject = camel_mime_message_get_subject(msg);
if (subject && *subject) {
- fwd_subj = g_strdup_printf ("[Fwd: %s]", subject);
+ /* Truncate insanely long subjects */
+ if (strlen (subject) < max_subject_length)
+ fwd_subj = g_strdup_printf ("[Fwd: %s]", subject);
+ else
+ fwd_subj = g_strdup_printf ("[Fwd: %.*s...]", max_subject_length, subject);
} else {
const CamelInternetAddress *from;
char *fromstr;