#ifndef ZOIDBERG_MAIL_ENCODING_H
#define ZOIDBERG_MAIL_ENCODING_H
#include <size_t.h>
#include <sys/types.h>
#define B_MAIL_NULL_CONVERSION ((uint32) -1)
#define B_MAIL_UTF8_CONVERSION ((uint32) -2)
#define B_MAIL_US_ASCII_CONVERSION ((uint32) -3)
#define BASE64_LINELENGTH 76
typedef enum {
base64 = 'b',
quoted_printable = 'q',
seven_bit = '7',
eight_bit = '8',
uuencode = 'u',
null_encoding = 0,
no_encoding = -1
} mail_encoding;
#ifdef __cplusplus
extern "C" {
#endif
ssize_t encode(mail_encoding encoding, char *out, const char *in,
off_t length, int headerMode);
ssize_t decode(mail_encoding encoding, char *out, const char *in, off_t length,
int underscore_is_space);
ssize_t max_encoded_length(mail_encoding encoding, off_t cur_length);
mail_encoding encoding_for_cte(const char *content_transfer_encoding);
ssize_t encode_base64(char *out, const char *in, off_t length, int headerMode);
ssize_t decode_base64(char *out, const char *in, off_t length);
ssize_t encode_qp(char *out, const char *in, off_t length, int headerMode);
ssize_t decode_qp(char *out, const char *in, off_t length, int underscore_is_space);
ssize_t uu_decode(char *out, const char *in, off_t length);
#ifdef __cplusplus
}
#endif
#endif