X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/5dd6771b28c257af405d7248639ed0e3bcdce38b..94187a80bd60baab4b9c4b949ad820d730578123:/h/mime.h diff --git a/h/mime.h b/h/mime.h index 3e50ce2c..e389b284 100644 --- a/h/mime.h +++ b/h/mime.h @@ -1,6 +1,4 @@ - -/* - * mime.h -- definitions for MIME +/* mime.h -- definitions for MIME */ #define VRSN_FIELD "MIME-Version" @@ -12,26 +10,42 @@ #define DESCR_FIELD "Content-Description" #define DISPO_FIELD "Content-Disposition" #define MD5_FIELD "Content-MD5" - -#define isatom(c) (!isspace (c) && !iscntrl (c) && (c) != '(' \ - && (c) != ')' && (c) != '<' && (c) != '>' \ - && (c) != '@' && (c) != ',' && (c) != ';' \ - && (c) != ':' && (c) != '\\' && (c) != '"' \ - && (c) != '.' && (c) != '[' && (c) != ']') +#define PSEUDOHEADER_PREFIX "Nmh-" +#define ATTACH_FIELD PSEUDOHEADER_PREFIX "Attach" +#define ATTACH_FIELD_ALT "Attach" +#define MHBUILD_FILE_PSEUDOHEADER PSEUDOHEADER_PREFIX "mhbuild-file-" +#define MHBUILD_ARGS_PSEUDOHEADER PSEUDOHEADER_PREFIX "mhbuild-args-" /* * Test for valid characters used in "token" * as defined in RFC2045 */ -#define istoken(c) (!isspace (c) && !iscntrl (c) && (c) != '(' \ +#define istoken(c) (isascii((unsigned char) c) \ + && !isspace ((unsigned char) c) \ + && !iscntrl ((unsigned char) c) && (c) != '(' \ && (c) != ')' && (c) != '<' && (c) != '>' \ && (c) != '@' && (c) != ',' && (c) != ';' \ && (c) != ':' && (c) != '\\' && (c) != '"' \ && (c) != '/' && (c) != '[' && (c) != ']' \ && (c) != '?' && (c) != '=') +/* + * Definitions for RFC 2231 encoding + */ +#define istspecial(c) ((c) == '(' || (c) == ')' || (c) == '<' || (c) == '>' \ + || (c) == '@' || (c) == ',' || (c) == ';' \ + || (c) == ':' || (c) == '\\' || (c) == '"' \ + || (c) == '/' || (c) == '[' || (c) == ']' \ + || (c) == '?' || (c) == '=') + +#define isparamencode(c) (!isascii((unsigned char) c) || \ + iscntrl((unsigned char) c) || istspecial(c) || \ + (c) == ' ' || (c) == '*' || (c) == '\'' || \ + (c) == '%') + +#define MAXTEXTPERLN 78 +#define MAXLONGLINE 998 #define CPERLIN 76 #define BPERLIN (CPERLIN / 4) #define LPERMSG 632 #define CPERMSG (LPERMSG * CPERLIN) -