X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=h%2Fmh.h;h=649582d3bca6d1abf244de14ce5159151da33698;hp=9d22c2b152e9096b63a234d081bba0519a486a49;hb=HEAD;hpb=43b38cc6c82b85aff3a5868289ecebeb20215b9c diff --git a/h/mh.h b/h/mh.h index 9d22c2b..280249e 100644 --- a/h/mh.h +++ b/h/mh.h @@ -2,7 +2,14 @@ ** mh.h -- main header file for all of nmh */ -#include +#include + +#include +#include +#include +#include +#include + /* ** Well-used constants @@ -31,8 +38,50 @@ typedef unsigned char boolean; /* not int so we can pack in a structure */ */ #if __GNUC__ > 2 # define NORETURN __attribute__((__noreturn__)) +# define CONST __attribute__((const)) +# define MALLOC __attribute__((malloc)) +# define NONNULL(...) __attribute__((nonnull(__VA_ARGS__))) +# define PURE __attribute__((pure)) +# define ENDNULL __attribute__((sentinel)) #else # define NORETURN +# define CONST +# define MALLOC +# define NONNULL(...) +# define PURE +# define ENDNULL +#endif + +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define ALLOC_SIZE(...) __attribute__((alloc_size(__VA_ARGS__))) +# define CHECK_PRINTF(fmt, arg) __attribute__((format(printf, fmt, arg))) +#else +# define ALLOC_SIZE(...) +# define CHECK_PRINTF(fmt, arg) +#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 /* @@ -172,16 +221,27 @@ struct msgs { ** 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 */ +#define MAXTEXTPERLN 78 -extern int msg_count; /* m_getfld() indicators (That's a hack!) */ +/* m_getfld2() returned data */ +struct field { + char name[NAMESZ]; + size_t namelen; + char *value; + size_t valuelen; + size_t alloclen; + boolean crlf; +}; + +/* 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 */ @@ -248,10 +308,10 @@ extern char *msgprot; 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; @@ -264,10 +324,9 @@ extern char *seq_unseen; 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 #include