summaryrefslogtreecommitdiffstatshomepage
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/main.c b/main.c
index c951d732..902d7324 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.14 2009/03/25 15:17:49 kristaps Exp $ */
+/* $Id: main.c,v 1.15 2009/03/25 21:03:13 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@openbsd.org>
*
@@ -54,6 +54,10 @@ struct curparse {
#define WARN_WERR (1 << 2) /* Warnings->errors. */
};
+#define IGN_SCOPE (1 << 0) /* Flag to ignore scope. */
+#define IGN_ESCAPE (1 << 1) /* Flag to ignore bad escapes. */
+#define IGN_MACRO (1 << 2) /* Flag to ignore unknown macros. */
+
enum intt {
INTT_MDOC = 0,
INTT_MAN
@@ -104,7 +108,7 @@ __dead static void usage(void);
int
main(int argc, char *argv[])
{
- int c, rc, fflags;
+ int c, rc, fflags, pflags;
struct mdoc_cb mdoccb;
struct man_cb mancb;
struct man *man;
@@ -205,13 +209,24 @@ main(int argc, char *argv[])
man = NULL;
mdoc = NULL;
+ pflags = 0;
switch (inttype) {
case (INTT_MAN):
- man = man_alloc(&curp, &mancb);
+ if (fflags & IGN_MACRO)
+ pflags |= MAN_IGN_MACRO;
+
+ man = man_alloc(&curp, pflags, &mancb);
break;
default:
- mdoc = mdoc_alloc(&curp, fflags, &mdoccb);
+ if (fflags & IGN_SCOPE)
+ pflags |= MDOC_IGN_SCOPE;
+ if (fflags & IGN_ESCAPE)
+ pflags |= MDOC_IGN_ESCAPE;
+ if (fflags & IGN_MACRO)
+ pflags |= MDOC_IGN_MACRO;
+
+ mdoc = mdoc_alloc(&curp, pflags, &mdoccb);
break;
}
@@ -449,13 +464,13 @@ foptions(int *fflags, char *arg)
while (*arg)
switch (getsubopt(&arg, toks, &v)) {
case (0):
- *fflags |= MDOC_IGN_SCOPE;
+ *fflags |= IGN_SCOPE;
break;
case (1):
- *fflags |= MDOC_IGN_ESCAPE;
+ *fflags |= IGN_ESCAPE;
break;
case (2):
- *fflags |= MDOC_IGN_MACRO;
+ *fflags |= IGN_MACRO;
break;
default:
warnx("bad argument: -f%s", arg);