diff --git a/src/utils/mimeparse.h b/src/utils/mimeparse.h index adc3af3d..4ab82b31 100644 --- a/src/utils/mimeparse.h +++ b/src/utils/mimeparse.h @@ -1,20 +1,36 @@ #ifndef _MIME_H_INCLUDED_ #define _MIME_H_INCLUDED_ -/* @(#$Id: mimeparse.h,v 1.3 2005-10-15 12:18:04 dockes Exp $ (C) 2004 J.F.Dockes */ +/* @(#$Id: mimeparse.h,v 1.4 2006-01-17 10:08:51 dockes Exp $ (C) 2004 J.F.Dockes */ #include #include -// Simple (no quoting) mime value parser. Input: "value; pn1=pv1; pn2=pv2 +#include "base64.h" + +/** A class to represent a MIME header value with parameters */ class MimeHeaderValue { public: std::string value; std::map params; }; + +/** + * Parse MIME Content-type and Content-disposition value + * + * @param in the input string should be like: value; pn1=pv1; pn2=pv2. + * Example: text/plain; charset="iso-8859-1" + */ extern bool parseMimeHeaderValue(const std::string& in, MimeHeaderValue& psd); -bool qp_decode(const std::string& in, std::string &out); -bool base64_decode(const std::string& in, std::string &out); -bool rfc2047_decode(const std::string& in, std::string &out); +/** Quoted printable decoding */ +extern bool qp_decode(const std::string& in, std::string &out); + +/** Decode an Internet mail header value encoded according to rfc2047 + * + * Example input: =?iso-8859-1?Q?RE=A0=3A_Smoke_Tests?= + * @param in input string, ascii with rfc2047 markup + * @return out output string encoded in utf-8 + */ +extern bool rfc2047_decode(const std::string& in, std::string &out); #endif /* _MIME_H_INCLUDED_ */