]> diplodocus.org Git - nmh/blobdiff - h/mh.h
Silence more gcc format-string warnings.
[nmh] / h / mh.h
diff --git a/h/mh.h b/h/mh.h
index af6acf93c65684d53a2d6acf555d1ba82ed8b256..dda0c3d245ca420b2193b54fb1e4689dd609b9a9 100644 (file)
--- a/h/mh.h
+++ b/h/mh.h
 #endif
 typedef unsigned char  boolean;  /* not int so we can pack in a structure */
 
-/* If we're using gcc then give it some information about
- * functions that abort.
- */
+/* If we're using gcc then tell it extra information so it can do more
+ * compile-time checks. */
 #if __GNUC__ > 2
 #define NORETURN __attribute__((__noreturn__))
+#define CHECK_PRINTF(fmt, arg) __attribute__((format(printf, fmt, arg)))
 #define NMH_UNUSED(i) (void) i
 #else
 #define NORETURN
+#define CHECK_PRINTF(fmt, arg)
 #define NMH_UNUSED(i) i
 #endif
 
@@ -353,8 +354,6 @@ struct msgs {
 #define other_files(mp)     ((mp)->msgflags & OTHERS)
 #define set_other_files(mp) ((mp)->msgflags |= OTHERS)
 
-#define        NULLMP  ((struct msgs *) 0)
-
 /*
  * m_getfld() message parsing
  */
@@ -369,23 +368,31 @@ struct msgs {
                                   followed by a colon.  Add one for
                                   terminating NULL. */
 
-#define LENERR  (-2)           /* Name too long error from getfld  */
-#define FMTERR  (-3)           /* Message Format error             */
-#define FLD      0             /* Field returned                   */
-#define FLDPLUS  1             /* Field returned with more to come */
-#define BODY     3             /* Body  returned with more to come */
-#define FILEEOF  5             /* Reached end of input file        */
+/* Token type or error returned from m_getfld(), and its internal state
+ * for the next call. */
+/* FLD detects the header's name is too long to fit in the fixed size
+ * array. */
+#define LENERR  (-2)
+/* FLD reaches EOF after the header's name, or the name is followed by
+ * a linefeed rather than a colon and the body buffer isn't large enough
+ * to pretend this header line starts the body. */
+#define FMTERR  (-3)
+/* The initial state, looking for headers.  Returned when the header's
+ * value finishes. */
+#define FLD      0
+/* Another chunk of the header's value has been returned, but there's
+ * more to come. */
+#define FLDPLUS  1
+/* A chunk of the email's body has been returned. */
+#define BODY     3
+/* Either the end of the input file has been reached, or the delimiter
+ * between emails has been found and the caller should
+ * m_getfld_state_reset() to reset the state to FLD for continuing
+ * through the file. */
+#define FILEEOF  5
 
 typedef struct m_getfld_state *m_getfld_state_t;
 
-/*
- * Maildrop styles
- */
-#define        MS_DEFAULT      0       /* default (one msg per file) */
-#define        MS_UNKNOWN      1       /* type not known yet         */
-#define        MS_MBOX         2       /* Unix-style "from" lines    */
-#define        MS_MMDF         3       /* string mmdlm2              */
-
 #define        NOUSE   0               /* draft being re-used */
 
 #define TFOLDER 0              /* path() given a +folder */