summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-03-23 12:40:04 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-03-23 12:40:04 +0000
commit22671958d103a1eca7f6675bff049e902034637b (patch)
treeaedf5abb7525d51424973358454579d2540e6303
parente29490c2a6462d5308d34e9cad6e8b105edbd029 (diff)
downloadmandoc-22671958d103a1eca7f6675bff049e902034637b.tar.gz
First, make -man ARGS_EOLN et al. be an enum. Second, remove
ARGS_ERROR, as it is never returned by man_args(). Then clean up invocations of man_args() to only check for ARGS_EOLN.
-rw-r--r--libman.h14
-rw-r--r--man_argv.c4
-rw-r--r--man_macro.c26
3 files changed, 15 insertions, 29 deletions
diff --git a/libman.h b/libman.h
index a1afde88..ca90646e 100644
--- a/libman.h
+++ b/libman.h
@@ -56,6 +56,12 @@ struct man_macro {
#define MAN_NOCLOSE (1 << 4) /* See blk_exp(). */
};
+enum margserr {
+ ARGS_EOLN,
+ ARGS_WORD,
+ ARGS_QWORD
+};
+
extern const struct man_macro *const man_macros;
__BEGIN_DECLS
@@ -72,13 +78,9 @@ int man_body_alloc(struct man *, int, int, enum mant);
int man_elem_alloc(struct man *, int, int, enum mant);
void man_node_delete(struct man *, struct man_node *);
void man_hash_init(void);
-enum mant man_hash_find(const char *);
+enum mant man_hash_find(const char *);
int man_macroend(struct man *);
-int man_args(struct man *, int, int *, char *, char **);
-#define ARGS_ERROR (-1)
-#define ARGS_EOLN (0)
-#define ARGS_WORD (1)
-#define ARGS_QWORD (1)
+enum margserr man_args(struct man *, int, int *, char *, char **);
int man_valid_post(struct man *);
int man_valid_pre(struct man *, struct man_node *);
int man_unscope(struct man *,
diff --git a/man_argv.c b/man_argv.c
index 2e22139e..6e69be8a 100644
--- a/man_argv.c
+++ b/man_argv.c
@@ -18,8 +18,6 @@
#include "config.h"
#endif
-#include <sys/types.h>
-
#include <assert.h>
#include "man.h"
@@ -27,7 +25,7 @@
#include "libman.h"
#include "libmandoc.h"
-int
+enum margserr
man_args(struct man *m, int line, int *pos, char *buf, char **v)
{
char *start;
diff --git a/man_macro.c b/man_macro.c
index f10a32ea..e0549822 100644
--- a/man_macro.c
+++ b/man_macro.c
@@ -296,7 +296,7 @@ blk_close(MACRO_PROT_ARGS)
int
blk_exp(MACRO_PROT_ARGS)
{
- int w, la;
+ int la;
char *p;
/*
@@ -317,13 +317,8 @@ blk_exp(MACRO_PROT_ARGS)
for (;;) {
la = *pos;
- w = man_args(m, line, pos, buf, &p);
-
- if (-1 == w)
- return(0);
- if (0 == w)
+ if (ARGS_EOLN == man_args(m, line, pos, buf, &p))
break;
-
if ( ! man_word_alloc(m, line, la, p))
return(0);
}
@@ -348,7 +343,7 @@ blk_exp(MACRO_PROT_ARGS)
int
blk_imp(MACRO_PROT_ARGS)
{
- int w, la;
+ int la;
char *p;
struct man_node *n;
@@ -372,13 +367,8 @@ blk_imp(MACRO_PROT_ARGS)
for (;;) {
la = *pos;
- w = man_args(m, line, pos, buf, &p);
-
- if (-1 == w)
- return(0);
- if (0 == w)
+ if (ARGS_EOLN == man_args(m, line, pos, buf, &p))
break;
-
if ( ! man_word_alloc(m, line, la, p))
return(0);
}
@@ -406,7 +396,7 @@ blk_imp(MACRO_PROT_ARGS)
int
in_line_eoln(MACRO_PROT_ARGS)
{
- int w, la;
+ int la;
char *p;
struct man_node *n;
@@ -417,11 +407,7 @@ in_line_eoln(MACRO_PROT_ARGS)
for (;;) {
la = *pos;
- w = man_args(m, line, pos, buf, &p);
-
- if (-1 == w)
- return(0);
- if (0 == w)
+ if (ARGS_EOLN == man_args(m, line, pos, buf, &p))
break;
if ( ! man_word_alloc(m, line, la, p))
return(0);