*/
#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
/*
** terminating NULL.
*/
+#define MAXTEXTPERLN 78
+
/* m_getfld2() returned data */
struct field {
char name[NAMESZ];
char *value;
size_t valuelen;
size_t alloclen;
+ boolean crlf;
};
-extern struct field free_field;
-
/* m_getfld2() states */
enum state {
LENERR2 = -2, /* Line too long */
IOERR2 = -1, /* Read error */
FLD2 = 0, /* Header field returned */
BODY2, /* Body line returned */
- FILEEOF2, /* Reached end of input file */
+ 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;
+#include <h/charstring.h>
#include <h/prototypes.h>