]> granicus.if.org Git - neomutt/commitdiff
Another attempt to dequote RFC2047-encoded address comments (see #2014)
authorBrendan Cully <brendan@kublai.com>
Tue, 2 Mar 2010 06:35:30 +0000 (22:35 -0800)
committerBrendan Cully <brendan@kublai.com>
Tue, 2 Mar 2010 06:35:30 +0000 (22:35 -0800)
ChangeLog
copy.c
rfc822.c
rfc822.h

index 3bef557db98b383891d06d18a72fd7c7117e09d7..0993355a46d720bfdbe3ff0802949c7ec6a0b165 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2010-03-01 16:14 -0800  Brendan Cully  <brendan@kublai.com>  (86d93280e5b3)
+
+       * rfc822.c: Backed out changeset 2a4ca6917fd0. It is incompatible with
+       $assumed_charset (see #2014).
+
+2010-02-28 23:03 -0800  Brendan Cully  <brendan@kublai.com>  (2a4ca6917fd0)
+
+       * rfc822.c: RFC-2047 decode address text before dequoting it (see
+       #2014)
+
+       * doc/manual.xml.head: Fix next-unread-mailbox name in
+       documentation. Closes #3319.
+
 2010-02-28 17:23 -0800  Antonio Radici  <antonio@dyne.org>  (25459cbb132a)
 
        * po/de.po: Fix German translation of "No undeleted messages." (closes
diff --git a/copy.c b/copy.c
index 9ddf411b752dec7246f149cc2ad9cfd5728de434..e3716b721d389147f0ab3f71eee1f83ade6372f7 100644 (file)
--- a/copy.c
+++ b/copy.c
@@ -868,6 +868,7 @@ static int address_header_decode (char **h)
   int l, rp = 0;
 
   ADDRESS *a = NULL;
+  ADDRESS *cur = NULL;
 
   switch (tolower ((unsigned char) *s))
   {
@@ -937,6 +938,8 @@ static int address_header_decode (char **h)
   
   mutt_addrlist_to_local (a);
   rfc2047_decode_adrlist (a);
+  for (cur = a; cur; cur = cur->next)
+    rfc822_dequote_comment (a->personal);
 
   /* angle brackets for return path are mandated by RfC5322,
    * so leave Return-Path as-is */
index 5569d319fc92bfa2023b974f327df78127747fb9..14abeb74efffdeddfade9fbbf7f8f6d4d5df0e95 100644 (file)
--- a/rfc822.c
+++ b/rfc822.c
@@ -60,7 +60,7 @@ const char *RFC822Errors[] = {
   "bad address spec"
 };
 
-static void rfc822_dequote_comment (char *s)
+void rfc822_dequote_comment (char *s)
 {
   char *w = s;
 
index 4684e97124c4ef6030be791f63de11f7263c1f2d..0c48f75a9a4c46765e296fb55d9c15336baef1c4 100644 (file)
--- a/rfc822.h
+++ b/rfc822.h
@@ -46,6 +46,7 @@ typedef struct address_t
 }
 ADDRESS;
 
+void rfc822_dequote_comment (char *s);
 void rfc822_free_address (ADDRESS **);
 void rfc822_qualify (ADDRESS *, const char *);
 ADDRESS *rfc822_parse_adrlist (ADDRESS *, const char *s);