summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-07-21 09:08:26 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-07-21 09:08:26 +0000
commit25dd5fca341866aad4ae182313bdf902ae4c349f (patch)
tree1e39b0d24418488654ff080c55244a1ce5ae7041
parent8b85d55ace96243bd451848b3954a433f584c00c (diff)
downloadmandoc-25dd5fca341866aad4ae182313bdf902ae4c349f.tar.gz
mandoc-25dd5fca341866aad4ae182313bdf902ae4c349f.tar.zst
mandoc-25dd5fca341866aad4ae182313bdf902ae4c349f.zip
Finally make mdoc argv CPP-defines into a proper enum.
-rw-r--r--mdoc.h63
-rw-r--r--mdoc_argv.c8
-rw-r--r--mdoc_validate.c6
3 files changed, 40 insertions, 37 deletions
diff --git a/mdoc.h b/mdoc.h
index 4bd4a04c..80390dd0 100644
--- a/mdoc.h
+++ b/mdoc.h
@@ -1,4 +1,4 @@
-/* $Id: mdoc.h,v 1.101 2010/07/13 23:53:20 schwarze Exp $ */
+/* $Id: mdoc.h,v 1.102 2010/07/21 09:08:26 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -155,35 +155,36 @@ enum mdoct {
/* What follows is a list of ALL possible macro arguments. */
-/* FIXME: make this into an enum. */
-#define MDOC_Split 0
-#define MDOC_Nosplit 1
-#define MDOC_Ragged 2
-#define MDOC_Unfilled 3
-#define MDOC_Literal 4
-#define MDOC_File 5
-#define MDOC_Offset 6
-#define MDOC_Bullet 7
-#define MDOC_Dash 8
-#define MDOC_Hyphen 9
-#define MDOC_Item 10
-#define MDOC_Enum 11
-#define MDOC_Tag 12
-#define MDOC_Diag 13
-#define MDOC_Hang 14
-#define MDOC_Ohang 15
-#define MDOC_Inset 16
-#define MDOC_Column 17
-#define MDOC_Width 18
-#define MDOC_Compact 19
-#define MDOC_Std 20
-#define MDOC_Filled 21
-#define MDOC_Words 22
-#define MDOC_Emphasis 23
-#define MDOC_Symbolic 24
-#define MDOC_Nested 25
-#define MDOC_Centred 26
-#define MDOC_ARG_MAX 27
+enum mdocargt {
+ MDOC_Split,
+ MDOC_Nosplit,
+ MDOC_Ragged,
+ MDOC_Unfilled,
+ MDOC_Literal,
+ MDOC_File,
+ MDOC_Offset,
+ MDOC_Bullet,
+ MDOC_Dash,
+ MDOC_Hyphen,
+ MDOC_Item,
+ MDOC_Enum,
+ MDOC_Tag,
+ MDOC_Diag,
+ MDOC_Hang,
+ MDOC_Ohang,
+ MDOC_Inset,
+ MDOC_Column,
+ MDOC_Width,
+ MDOC_Compact,
+ MDOC_Std,
+ MDOC_Filled,
+ MDOC_Words,
+ MDOC_Emphasis,
+ MDOC_Symbolic,
+ MDOC_Nested,
+ MDOC_Centred,
+ MDOC_ARG_MAX
+};
/* Type of a syntax node. */
enum mdoc_type {
@@ -236,7 +237,7 @@ struct mdoc_meta {
/* An argument to a macro (multiple values = `It -column'). */
struct mdoc_argv {
- int arg;
+ enum mdocargt arg;
int line;
int pos;
size_t sz;
diff --git a/mdoc_argv.c b/mdoc_argv.c
index 72121d8f..c55bcdd9 100644
--- a/mdoc_argv.c
+++ b/mdoc_argv.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_argv.c,v 1.56 2010/07/13 23:53:20 schwarze Exp $ */
+/* $Id: mdoc_argv.c,v 1.57 2010/07/21 09:08:26 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -45,7 +45,7 @@
#define MULTI_STEP 5
-static int argv_a2arg(enum mdoct, const char *);
+static enum mdocargt argv_a2arg(enum mdoct, const char *);
static enum margserr args(struct mdoc *, int, int *,
char *, int, char **);
static int argv(struct mdoc *, int,
@@ -313,7 +313,7 @@ mdoc_argv_free(struct mdoc_arg *p)
void
mdoc_argn_free(struct mdoc_arg *p, int iarg)
{
- struct mdoc_argv *arg = &p->argv[iarg];
+ struct mdoc_argv *arg = &p->argv[iarg]; /* FIXME: decl/assign */
int j;
if (arg->sz && arg->value) {
@@ -583,7 +583,7 @@ args(struct mdoc *m, int line, int *pos,
}
-static int
+static enum mdocargt
argv_a2arg(enum mdoct tok, const char *p)
{
diff --git a/mdoc_validate.c b/mdoc_validate.c
index c6af80a9..822c3b5c 100644
--- a/mdoc_validate.c
+++ b/mdoc_validate.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_validate.c,v 1.112 2010/07/20 14:56:42 kristaps Exp $ */
+/* $Id: mdoc_validate.c,v 1.113 2010/07/21 09:08:26 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -624,6 +624,8 @@ pre_bl(PRE_ARGS)
if ( ! mdoc_nmsg(mdoc, n, MANDOCERR_IGNARGV))
return(0);
break;
+ default:
+ continue;
}
/* Check: duplicate auxiliary arguments. */
@@ -946,7 +948,7 @@ static int
post_bf(POST_ARGS)
{
struct mdoc_node *np;
- int arg;
+ enum mdocargt arg;
/*
* Unlike other data pointers, these are "housed" by the HEAD