--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: mimedecode: in nested parts, the outer content-transfer-encoding should be changed from 7bit to 8 bit when applicable
- From: Stephane Chazelas <stephane@artesyncp.com>
- Date: Tue, 16 Oct 2007 18:01:08 +0100
- Message-id: <20071016170108.29882.54556.reportbug@ant.artesyncp.com>
Package: mimedecode
Version: 1.9-4
Severity: normal
Please consider this input email:
| MIME-Version: 1.0
| Content-Type: multipart/mixed;
| boundary="----_=_NextPart_026_01C81003.683F8A00"
|
| ------_=_NextPart_026_01C81003.683F8A00
| Content-Type: message/rfc822
| Content-Transfer-Encoding: 7bit
|
| Content-Type: text/plain;
| charset="iso-8859-1"
| Content-Transfer-Encoding: quoted-printable
|
| =E9
|
| ------_=_NextPart_026_01C81003.683F8A00--
Here is the output when run through mimedecode
| MIME-Version: 1.0
| Content-Type: multipart/mixed;
| boundary="----_=_NextPart_026_01C81003.683F8A00"
|
| ------_=_NextPart_026_01C81003.683F8A00
| Content-Type: message/rfc822
| Content-Transfer-Encoding: 7bit
|
| Content-Type: text/plain;
| charset="iso-8859-1"
| X-Content-transfer-encoding: fixed from quoted-printable
| Content-Transfer-Encoding: 8bit
|
| é
|
| ------_=_NextPart_026_01C81003.683F8A00--
See how the part's Content-Transfer-Encoding still is 7bit even
though the part contains an 8bit character (e acute (0xE9)).
I would have expected something like:
| MIME-Version: 1.0
| Content-Type: multipart/mixed;
| boundary="----_=_NextPart_026_01C81003.683F8A00"
|
| ------_=_NextPart_026_01C81003.683F8A00
| Content-Type: message/rfc822
| X-Content-transfer-encoding: changed from 7bit
| Content-Transfer-Encoding: 8bit
|
| Content-Type: text/plain;
| charset="iso-8859-1"
| X-Content-transfer-encoding: fixed from quoted-printable
| Content-Transfer-Encoding: 8bit
|
| é
|
| ------_=_NextPart_026_01C81003.683F8A00--
Here is a patch that fixes it:
--- mimedecode.c~ 2007-10-16 17:59:37.000000000 +0100
+++ mimedecode.c 2007-10-16 18:00:04.000000000 +0100
@@ -1234,8 +1234,7 @@ int transfer_encoding, content_type;
break;
case BIT7:
- fprintf(stdout,"Content-Transfer-Encoding: 7bit\n");
- break;
+ fprintf(stdout,"X-Content-transfer-encoding: changed from 7bit\n");
case BIT8:
fprintf(stdout,"Content-Transfer-Encoding: 8bit\n");
@@ -1261,8 +1260,7 @@ int transfer_encoding, content_type;
break;
case BIT7:
- fprintf(stdout,"Content-Transfer-Encoding: 7bit\n");
- break;
+ fprintf(stdout,"X-Content-transfer-encoding: changed from 7bit\n");
case BIT8:
fprintf(stdout,"Content-Transfer-Encoding: 8bit\n");
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.23.1
Locale: LANG=en_GB.ISO-8859-15, LC_CTYPE=en_GB.ISO-8859-15 (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash
Versions of packages mimedecode depends on:
ii libc6 2.6.1-4 GNU C Library: Shared libraries
mimedecode recommends no packages.
-- no debconf information
--- End Message ---