X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=h%2Fmh.h;h=280249e15f1d484cc97d4042b5701f809d393956;hb=HEAD;hp=8107a3e326fbae377482d0ae95757e41de14978d;hpb=a3d849510ecad775e265ab7b6090e85576f48ef7;p=mmh diff --git a/h/mh.h b/h/mh.h index 8107a3e..280249e 100644 --- a/h/mh.h +++ b/h/mh.h @@ -38,8 +38,26 @@ 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 /* @@ -203,32 +221,28 @@ struct msgs { ** terminating NULL. */ +#define MAXTEXTPERLN 78 + +/* 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, - FMTERR2 = -3, - IOERR2 = -1, - FLD2 = 0, - BODY2, - FILEEOF2, + 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 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 */ - -extern int msg_count; /* m_getfld() indicators (That's a hack!) */ - #define NOUSE 0 /* draft being re-used */ #define OUTPUTLINELEN 72 /* default line length for headers */ @@ -294,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; @@ -310,8 +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; +#include #include