message-header-decode.h revision 82d3a1d1594ed93d04d7bf999027b3e5104de6e4
c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainen#ifndef MESSAGE_HEADER_DECODE_H
c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainen#define MESSAGE_HEADER_DECODE_H
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainen
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainen/* Return FALSE if you wish to stop decoding. charset is NULL when it's not
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainen RFC2047-encoded. */
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainentypedef bool message_header_decode_callback_t(const unsigned char *data,
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen size_t size, const char *charset,
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen void *context);
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainen
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainen/* Decode RFC2047 encoded words. Call specified function for each
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainen decoded block. */
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainenvoid message_header_decode(const unsigned char *data, size_t size,
7c424aa51c956c628e3512055841aa2f9eef4833Timo Sirainen message_header_decode_callback_t *callback,
f923659c0e5298263d80622c99f4dc4132b4675bTimo Sirainen void *context);
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainen
345253fb28498b2e0a60f4a2a8644c65feee7e75Timo Sirainen/* Append decoded RFC2047 header as UTF-8 to given buffer. If dtcase=TRUE,
82d3a1d1594ed93d04d7bf999027b3e5104de6e4Timo Sirainen the header is appended through uni_utf8_to_decomposed_titlecase(). */
82d3a1d1594ed93d04d7bf999027b3e5104de6e4Timo Sirainenvoid message_header_decode_utf8(const unsigned char *data, size_t size,
345253fb28498b2e0a60f4a2a8644c65feee7e75Timo Sirainen buffer_t *dest, bool dtcase);
72388282bf6718c39af34cfcf51438910f9d62daTimo Sirainen
847aeef259d42e2f14cf126699e28291e6e1fb53Timo Sirainen#endif