** mh.h -- main header file for all of nmh
*/
-#include <h/nmh.h>
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <stdarg.h>
+
/*
** Well-used constants
#endif
/*
+** we should be getting this value from pathconf(_PC_PATH_MAX)
+*/
+#ifndef PATH_MAX
+# ifdef MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+# else
+ /* so we will just pick something */
+# define PATH_MAX 1024
+# endif
+#endif
+
+/*
+** we should be getting this value from sysconf(_SC_OPEN_MAX)
+*/
+#ifndef OPEN_MAX
+# ifdef NOFILE
+# define OPEN_MAX NOFILE
+# else
+ /* so we will just pick something */
+# define OPEN_MAX 64
+# endif
+#endif
+
+/*
** user context/profile structure
*/
struct node {
** 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 FLDEOF 2 /* Field returned ending at eom */
-#define BODY 3 /* Body returned with more to come */
-#define BODYEOF 4 /* Body returned ending at eom */
-#define FILEEOF 5 /* Reached end of input file */
+/* m_getfld2() returned data */
+struct field {
+ char name[NAMESZ];
+ size_t namelen;
+ char *value;
+ size_t valuelen;
+ size_t alloclen;
+ boolean crlf;
+};
-extern int msg_count; /* m_getfld() indicators (That's a hack!) */
+/* m_getfld2() states */
+enum state {
+ LENERR2 = -2, /* Line too long */
+ FMTERR2 = -3, /* Format error in message */
+ IOERR2 = -1, /* Read error */
+ FLD2 = 0, /* Header field returned */
+ BODY2, /* Body line returned */
+ FILEEOF2 /* Reached end of input file */
+};
#define NOUSE 0 /* draft being re-used */
extern char *nmhstorage;
extern char *nsequence;
extern char *profile;
-extern char *psequence;
extern char *rcvdistcomps;
extern char *replcomps;
extern char *replgroupcomps;
+extern char *scanformat;
extern char *sendmail;
extern char *seq_all;
extern char *seq_beyond;
extern char *seq_neg;
extern char *trashfolder;
extern char *usequence;
-extern char *version_num;
-extern char *version_str;
+extern char *version;
+extern char *lib_version;
extern char *whatnowproc;
-extern void (*done) (int) NORETURN;
-
#include <h/prototypes.h>