From: Eric S. Raymond Date: Tue, 12 May 1998 16:30:16 +0000 (-0000) Subject: Henrik's fix. X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=208dae95cc1ad48a7d39510e6485b77dd55c3a27;p=~andy%2Ffetchmail Henrik's fix. svn path=/trunk/; revision=1767 --- diff --git a/NEWS b/NEWS index edbebbb2..04548fcb 100644 --- a/NEWS +++ b/NEWS @@ -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. diff --git a/driver.c b/driver.c index 546c9609..dea10ba5 100644 --- a/driver.c +++ b/driver.c @@ -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 */ diff --git a/unmime.c b/unmime.c index 26c41637..0f0dcf42 100644 --- a/unmime.c +++ b/unmime.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);