X-Git-Url: https://git.distorted.org.uk/~mdw/ezmlm/blobdiff_plain/5b62e993b0af39700031c2875d7f6654e6a02850..f8beb284087c279acfb30506f5bb32baa4949b44:/mime.h diff --git a/mime.h b/mime.h new file mode 100644 index 0000000..27626a0 --- /dev/null +++ b/mime.h @@ -0,0 +1,81 @@ +#ifndef MIME_H +#define MIME_H + +#include "stralloc.h" + +extern void decodeQ(); +extern void decodeB(); +extern void encodeQ(); +extern void encodeB(); +extern void decodeHDR(); +extern void concatHDR(); +extern int unfoldHDR(); + +#ifdef WITH_PROTO +extern unsigned int author_name(char **,char *,unsigned int); +#else +extern unsigned int author_name(); +#endif + +/* Characters */ +#define ESC 0x1B +#define SI 0x0F +#define SO 0x0E +/* iso-2022-jp back-to-ascii seq */ +#define TOASCII "\x1B(B" +/* to JP. Last char [B|@] must be added */ +#define TOJP "\x1B$" + +/* iso-2022 SI sequence as string */ +#define TOSI "\x0F" +/* SI \n SO */ +#define SI_LF_SO "\x0F\n\x0E" + +/* in these bit 0 determines the number of bytes (1 or 2) in ss2/ss3 codes */ +/* it is 2 for CN,1 for JP, and they are not used for KR bit 3 for */ +/* iso-2022 */ +#define CS_2022_MASK 0x08 +#define CS_2022_JP 0x08 +#define CS_2022_KR 0xA0 +#define CS_NONE 0 +#define CS_BAD 0xffff + +#define CS_2022_CN 0x09 +/* Other Chinese ones. bit 7 set means MSB of 2-byte seq. No ss2/ss3 consid*/ +#define CS_CN 0x10 + +#define MIME_NONE 0 +#define MIME_APPLICATION_OCTETSTREAM 1 +#define MIME_MULTI 0x80 +#define MIME_MULTI_ALTERNATIVE 0x81 +#define MIME_MULTI_MIXED 0x82 +#define MIME_MULTI_DIGEST 0x83 +#define MIME_MULTI_SIGNED 0x84 + +#define MIME_TEXT 0x40 +#define MIME_TEXT_PLAIN 0x41 +#define MIME_TEXT_HTML 0x42 +#define MIME_TEXT_ENRICHED 0x43 +#define MIME_TEXT_VCARD 0x44 + +#define MIME_MESSAGE 0x20 +#define MIME_MESSAGE_RFC822 0x21 + +#define CTENC_NONE 0 +#define CTENC_QP 1 +#define CTENC_BASE64 2 + +/* this is a linked list of mime type info. */ +typedef struct { + int level; + unsigned int mimetype; + unsigned int ctenc; + unsigned int cs; /* charset flag - expand later */ + void *previous; + void *next; + stralloc boundary; + stralloc charset; + stralloc ctype; +} mime_info; + +#endif