diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | driver.c | 2 | ||||
-rw-r--r-- | fetchmail.h | 2 | ||||
-rw-r--r-- | unmime.c | 8 |
4 files changed, 8 insertions, 5 deletions
@@ -17,6 +17,7 @@ fetchmail-4.4.5 (): * Make RPA logging use error() rather than stderr. * Autoconfiguration support for NetBSD. +* Henrik Storner's fix for a minor mimedecode bug. There are 273 people on fetchmail-friends and 209 on fetchmail-announce. @@ -995,7 +995,7 @@ int num; /* index of message */ UnMimeHeader(headers); } /* Check for MIME headers indicating possible 8-bit data */ - mimemsg = MimeBodyType(headers); + mimemsg = MimeBodyType(headers, ctl->mimedecode); /* * If there is a Return-Path address on the message, this was diff --git a/fetchmail.h b/fetchmail.h index 891c2ec8..867bbad0 100644 --- a/fetchmail.h +++ b/fetchmail.h @@ -333,7 +333,7 @@ int from64tobits(char *, const char *); #define MSG_IS_8BIT 0x02 #define MSG_NEEDS_DECODE 0x80 extern void UnMimeHeader(unsigned char *buf); -extern int MimeBodyType(unsigned char *hdrs); +extern int MimeBodyType(unsigned char *hdrs, int WantDecode); extern int UnMimeBodyline(unsigned char **buf, int collapsedoubledot); /* interface.c */ @@ -339,7 +339,7 @@ static char *GetBoundary(char *CntType) * * The return value is a bitmask. */ -int MimeBodyType(unsigned char *hdrs) +int MimeBodyType(unsigned char *hdrs, int WantDecode) { unsigned char *NxtHdr = hdrs; unsigned char *XferEnc, *XferEncOfs, *CntType, *MimeVer, *p; @@ -440,7 +440,9 @@ int MimeBodyType(unsigned char *hdrs) if (strcasecmp(XferEnc, "quoted-printable") == 0) { CurrEncodingIsQP = 1; BodyType = (MSG_IS_8BIT | MSG_NEEDS_DECODE); - SetEncoding8bit(XferEncOfs); + if (WantDecode) { + SetEncoding8bit(XferEncOfs); + } } else if (strcasecmp(XferEnc, "7bit") == 0) { CurrEncodingIsQP = 0; @@ -643,7 +645,7 @@ int main(int argc, char *argv[]) DBG_FWRITE(buffer, strlen(buffer), 1, fd_orig); UnMimeHeader(buffer); - bodytype = MimeBodyType(buffer); + bodytype = MimeBodyType(buffer, 1); i = strlen(buffer); fwrite(buffer, i, 1, stdout); |