blob: f4a614878dd1ff5896c60c4a1a00606dbc6738a5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#ifndef QP_ENCODER_H
#define QP_ENCODER_H 1
enum qp_encoder_flag {
/* encode spaces as underscores, encode crlfs, adds =?utf-8?q?..?= encapsulation */
QP_ENCODER_FLAG_HEADER_FORMAT = 0x1,
/* treat input as true binary, no lf => crlf conversion, only CRLF is preserved */
QP_ENCODER_FLAG_BINARY_DATA = 0x2,
};
/* Initialize quoted-printable encoder. Write all the encoded output to dest. */
struct qp_encoder *qp_encoder_init(string_t *dest, unsigned int max_length,
enum qp_encoder_flag flags);
void qp_encoder_deinit(struct qp_encoder **qp);
/* Translate more (binary) data into quoted printable.
If QP_ENCODER_FLAG_BINARY_DATA is not set, text is assumed to be in
UTF-8 (but not enforced). No other character sets are supported. */
void qp_encoder_more(struct qp_encoder *qp, const void *src, size_t src_size);
/* Finish encoding any pending input.
This function also resets the entire encoder state, so the same encoder can
be used to encode more data if wanted. */
void qp_encoder_finish(struct qp_encoder *qp);
#endif
|