]> diplodocus.org Git - nmh/blobdiff - h/mime.h
lock_file.c: close(2) file descriptor on failure, avoiding leak.
[nmh] / h / mime.h
index 1a85b4273e3483db4fc7db0f068568cce1b9dbbd..e389b28463ed41c4820b3b0541aea517c8e0fc7b 100644 (file)
--- a/h/mime.h
+++ b/h/mime.h
@@ -1,8 +1,4 @@
-
-/*
- * mime.h -- definitions for MIME
- *
- * $Id$
+/* mime.h -- definitions for MIME
  */
 
 #define        VRSN_FIELD      "MIME-Version"
 #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)
-