]> diplodocus.org Git - nmh/blobdiff - h/mime.h
Replace getcpy() with mh_xstrdup() where the string isn't NULL.
[nmh] / h / mime.h
index 3e50ce2cb27f01a9d9cdf731021cbf1054a6478c..9cac94e5ad3ba80f888322936c9860cd9bfa2f82 100644 (file)
--- a/h/mime.h
+++ b/h/mime.h
 #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