]> git.cameronkatri.com Git - mandoc.git/blobdiff - mmain.h
Memory-corruption fix.
[mandoc.git] / mmain.h
diff --git a/mmain.h b/mmain.h
index eb90ff7d547727a5d97ce4b17cca8118b3171959..1af698575ade003155dba11eb7315f600ee57b71 100644 (file)
--- a/mmain.h
+++ b/mmain.h
@@ -1,4 +1,4 @@
-/* $Id: mmain.h,v 1.1 2009/02/22 22:58:39 kristaps Exp $ */
+/* $Id: mmain.h,v 1.4 2009/02/23 15:34:53 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
 /* 
  * This is a convenience library for utilities implementing mdoc(3)
  * accepting a similar set of command-line patterns.  mmain handles
 /* 
  * This is a convenience library for utilities implementing mdoc(3)
  * accepting a similar set of command-line patterns.  mmain handles
- * error reporting (to the terminal), preparing and reading the input
- * file, and enacting the parse itself.
+ * error reporting (to the terminal), command-line parsing, preparing
+ * and reading the input file, and enacting the parse itself.
  */
 
 #include "mdoc.h"
 
  */
 
 #include "mdoc.h"
 
+/* Rules for "dead" functions: */
+#if defined(__NetBSD__)
+#define        dead_pre        __dead
+#define        dead_post       __attribute__((__noreturn__))
+#elif defined(__OpenBSD__)
+#define        dead_pre        __dead
+#define        dead_post       /* Nothing. */
+#else
+#define        dead_pre        /* Nothing. */
+#define        dead_post       __attribute__((__noreturn__))
+#endif
+
 __BEGIN_DECLS
 
 struct mmain;
 
 struct mmain           *mmain_alloc(void);
 __BEGIN_DECLS
 
 struct mmain;
 
 struct mmain           *mmain_alloc(void);
-__dead void             mmain_exit(struct mmain *, int);
-int                     mmain_getopt(struct mmain *, int, 
-                               char *[], const char *);
-int                     mmain_isopt(int);
+dead_pre void           mmain_exit(struct mmain *, int) dead_post;
+int                     mmain_getopt(struct mmain *, int, char *[], 
+                               const char *, const char *, void *,
+                               int (*)(void *, int, const char *));
 struct mdoc            *mmain_mdoc(struct mmain *);
 void                    mmain_usage(const char *);
 
 struct mdoc            *mmain_mdoc(struct mmain *);
 void                    mmain_usage(const char *);