diff options
Diffstat (limited to 'rfc2045')
| -rw-r--r-- | rfc2045/rfc2045.h | 7 | ||||
| -rw-r--r-- | rfc2045/rfc2045decodemsgtoutf8.c | 7 | 
2 files changed, 13 insertions, 1 deletions
| diff --git a/rfc2045/rfc2045.h b/rfc2045/rfc2045.h index c7e2a62..90c2b56 100644 --- a/rfc2045/rfc2045.h +++ b/rfc2045/rfc2045.h @@ -559,6 +559,13 @@ struct rfc2045_decodemsgtoutf8_cb {  ** Do not prepend name: to converted header content.  */ + +#define RFC2045_DECODEMSG_NOATTACHHEADERS 0x08 +/* +** Do not decode MIME headers of attachments. Decode only the message's +** main headers. +*/ +  /*  ** Convert a message into a utf8 bytestream. The output produced by this  ** function is a catentation of decoded header and text content data, converted diff --git a/rfc2045/rfc2045decodemsgtoutf8.c b/rfc2045/rfc2045decodemsgtoutf8.c index fb58c3e..45ce2ea 100644 --- a/rfc2045/rfc2045decodemsgtoutf8.c +++ b/rfc2045/rfc2045decodemsgtoutf8.c @@ -79,7 +79,7 @@ static int doconvtoutf8_rfc822hdr(const char *header,  		doconvtoutf8_write(header, strlen(header), &info);  		doconvtoutf8_write(": ", 2, &info);  	} -	rfc822_display_hdrvalue(header, value, "utf-8",  +	rfc822_display_hdrvalue(header, value, "utf-8",  				doconvtoutf8_write_noeol,  				doconvtoutf8_error,  				&info); @@ -129,6 +129,11 @@ int rfc2045_decodemsgtoutf8(struct rfc2045src *src,  			if (callback->flags & RFC2045_DECODEMSG_NOHEADERS)  				continue; +			if ((callback->flags & +			     RFC2045_DECODEMSG_NOATTACHHEADERS) +			    && p->parent) +				continue; +  			if (doconvtoutf8_rfc822hdr(header, value,  						   callback) < 0)  				return -1; | 
