Cross Reference: /dovecot/src/lib-mail/message-header-decode.h
message-header-decode.h revision bc2d4f1c18222a3bd2a6b2b8b5f6abb560a865b3
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3Timo Sirainen#ifndef __MESSAGE_HEADER_DECODE_H
b8b085f7bc6f1c0367802a9f00062bbbd981690dTimo Sirainen#define __MESSAGE_HEADER_DECODE_H
b8b085f7bc6f1c0367802a9f00062bbbd981690dTimo Sirainen
b8b085f7bc6f1c0367802a9f00062bbbd981690dTimo Sirainen/* Return FALSE if you wish to stop decoding. charset is NULL when it's not
b8b085f7bc6f1c0367802a9f00062bbbd981690dTimo Sirainen RFC2047-encoded. */
b8b085f7bc6f1c0367802a9f00062bbbd981690dTimo Sirainentypedef bool message_header_decode_callback_t(const unsigned char *data,
57434d8add2f13b6d6dbd39b941e9e80c64be74eTimo Sirainen size_t size, const char *charset,
7ed711d973b319320da100d3e905ef7b99ed69d6Timo Sirainen void *context);
b8b085f7bc6f1c0367802a9f00062bbbd981690dTimo Sirainen
5fbccc935e3f7b916aa7c6e302a212821072e83aTimo Sirainen/* Decode RFC2047 encoded words. Call specified function for each
b8b085f7bc6f1c0367802a9f00062bbbd981690dTimo Sirainen decoded block. */
14e0f6334476ed4616e4737a277fc7d9b2aa1151Timo Sirainenvoid message_header_decode(const unsigned char *data, size_t size,
14e0f6334476ed4616e4737a277fc7d9b2aa1151Timo Sirainen message_header_decode_callback_t *callback,
14e0f6334476ed4616e4737a277fc7d9b2aa1151Timo Sirainen void *context);
51327f2489a4e0e615eb9f7d921473cf8512bb79Timo Sirainen
51327f2489a4e0e615eb9f7d921473cf8512bb79Timo Sirainen/* Append decoded RFC2047 header as UTF-8 to given buffer. If ucase=TRUE,
51327f2489a4e0e615eb9f7d921473cf8512bb79Timo Sirainen the header is appended uppercased. Returns TRUE if output changed in any
14e0f6334476ed4616e4737a277fc7d9b2aa1151Timo Sirainen way from input. */
b8b085f7bc6f1c0367802a9f00062bbbd981690dTimo Sirainenbool message_header_decode_utf8(const unsigned char *data, size_t size,
51327f2489a4e0e615eb9f7d921473cf8512bb79Timo Sirainen buffer_t *dest, bool ucase);
51327f2489a4e0e615eb9f7d921473cf8512bb79Timo Sirainen
51327f2489a4e0e615eb9f7d921473cf8512bb79Timo Sirainen#endif
b8b085f7bc6f1c0367802a9f00062bbbd981690dTimo Sirainen