/*
* mime.h -- definitions for MIME
- *
- * $Id$
*/
#define VRSN_FIELD "MIME-Version"
#define ENCODING_FIELD "Content-Transfer-Encoding"
#define ID_FIELD "Content-ID"
#define DESCR_FIELD "Content-Description"
+#define DISPO_FIELD "Content-Disposition"
#define MD5_FIELD "Content-MD5"
+#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-"
-#define isatom(c) (!isspace (c) && !iscntrl (c) && (c) != '(' \
+#define isatom(c) (isascii((unsigned char) c) \
+ && !isspace ((unsigned char) c) \
+ && !iscntrl ((unsigned char) c) && (c) != '(' \
&& (c) != ')' && (c) != '<' && (c) != '>' \
&& (c) != '@' && (c) != ',' && (c) != ';' \
&& (c) != ':' && (c) != '\\' && (c) != '"' \
* 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