Some findings to share...
On Tuesday, September 17, 2002 at 4:50:14 PM -0400, Ken Weingold wrote:
> On Tue, Sep 17, 2002, Alain Bench wrote:
>>>> From: "=?iso-8859-1?Q?Jo=E3o_T. _da_Costa?="
>> What mailer generated this header? It's broken: there is a space in
>> the encoded word
> it was Outlook doing it.
I guess what you quoted was not the original header: The real one
had no space, and no double quotes around, right? It probably was like
this in original mail:
| From: =?iso-8859-1?Q?Jo=E3o_T._da_Costa?= <something>
> It's the tilde-a, though.
No, it's the unquoted and unencoded dot. It's illegal in this sort
of encoded word (names). Mutt reacts strangely by adding a space just
after the dot. Then it tries to decode the encoded word, but fails
because of the illegal space. It stays displayed in index like that:
| =?iso-8859-1?Q?Jo=E3o_T. _da_Costa?=
When you reply, Mutt sees only US-Ascii, and because of the dot
encloses the string in double quotes, like this:
| To: "=?iso-8859-1?Q?Jo=E3o_T. _da_Costa?=" <something>
We're now at what you copy/pasted.
>> With the decode_2047_invalid patch, it appears as [...]
It appears correctly decoded. Just with a space too much in index.
So this patch can be a workaround: It comes attached.
Remains 2 questions:
- Why does Mutt add a space there for display in index.
- Why doesn't it add a space for display in pager.
I want to thank Jacek Nowosielski from comp.mail.mutt who gave me
complete and accurate info about this case.
Bye! Alain.
diff -dur mutt-1.4/rfc2047.c mutt-1.4.mod/rfc2047.c
--- mutt-1.4/rfc2047.c Sat Apr 20 09:25:49 2002
+++ mutt-1.4.mod/rfc2047.c Mon Jun 10 19:01:55 2002
@@ -705,7 +707,7 @@
;
if (q[0] != '?' || !strchr ("BbQq", q[1]) || q[2] != '?')
continue;
- for (q = q + 3; 0x20 < *q && *q < 0x7f && *q != '?'; q++)
+ for (q = q + 3; 0x20 <= *q && *q < 0x7f && *q != '?'; q++)
;
if (q[0] != '?' || q[1] != '=')
{
--- PATCHES Tue Nov 6 19:59:33 2001
+++ PATCHES Tue Nov 6 19:59:42 2001
@@ -1,0 +1 @@
+patch-1.4.ab.decode_2047_invalid.1