diff options
-rw-r--r-- | libman.h | 14 | ||||
-rw-r--r-- | man_argv.c | 4 | ||||
-rw-r--r-- | man_macro.c | 26 |
3 files changed, 15 insertions, 29 deletions
@@ -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 *, @@ -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); |