1 struct message { 2 char *msg; 3 char *end; 4 char *body; 5 char *bodyend; 6 char *bodychunk; 7 char *orig_header; 8 }; 9 10 // WSP = SP / HTAB 11 #define iswsp(c) (((c) == ' ' || (c) == '\t')) 12 13 #define isfws(c) (((unsigned char)(c) == ' ' || (unsigned char)(c) == '\t' || (unsigned char)(c) == '\n' || (unsigned char)(c) == '\r')) 14 15 // ASCII lowercase/uppercase without alpha check (wrong for "@[\]^_") 16 #define lc(c) ((c) | 0x20) 17 #define uc(c) ((c) & 0xdf) 18 19 // dirent type that can be a mail/dir (following symlinks) 20 #if defined(DT_REG) && defined(DT_LNK) && defined(DT_UNKNOWN) 21 #define MAIL_DT(t) (t == DT_REG || t == DT_LNK || t == DT_UNKNOWN) 22 #define DIR_DT(t) (t == DT_DIR || t == DT_UNKNOWN) 23 #else 24 #define MAIL_DT(t) (1) 25 #define DIR_DT(t) (1) 26 #endif 27 28 void *mymemmem(const void *h0, size_t k, const void *n0, size_t l); 29