=================================================================== RCS file: /cvs/mandoc/mdoc_argv.c,v retrieving revision 1.11 retrieving revision 1.15 diff -u -p -r1.11 -r1.15 --- mandoc/mdoc_argv.c 2009/07/06 13:04:52 1.11 +++ mandoc/mdoc_argv.c 2009/07/17 12:27:49 1.15 @@ -1,4 +1,4 @@ -/* $Id: mdoc_argv.c,v 1.11 2009/07/06 13:04:52 kristaps Exp $ */ +/* $Id: mdoc_argv.c,v 1.15 2009/07/17 12:27:49 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -33,12 +33,10 @@ */ /* FIXME .Bf Li raises "macro-like parameter". */ -/* FIXME .Bl -column should deprecate old-groff syntax. */ #define ARGS_QUOTED (1 << 0) #define ARGS_DELIM (1 << 1) #define ARGS_TABSEP (1 << 2) -#define ARGS_ARGVLIKE (1 << 3) #define ARGV_NONE (1 << 0) #define ARGV_SINGLE (1 << 1) @@ -128,7 +126,7 @@ static int mdoc_argflags[MDOC_MAX] = { 0, /* Ot */ ARGS_DELIM, /* Pa */ 0, /* Rv */ - ARGS_DELIM | ARGS_ARGVLIKE, /* St */ + ARGS_DELIM, /* St */ ARGS_DELIM, /* Va */ ARGS_DELIM, /* Vt */ ARGS_DELIM, /* Xr */ @@ -209,6 +207,8 @@ static int mdoc_argflags[MDOC_MAX] = { 0, /* En */ 0, /* Dx */ ARGS_QUOTED, /* %Q */ + 0, /* br */ + 0, /* sp */ }; @@ -231,9 +231,6 @@ mdoc_argv(struct mdoc *m, int line, int tok, assert(' ' != buf[*pos]); - if ('-' != buf[*pos] || ARGS_ARGVLIKE & mdoc_argflags[tok]) - return(ARGV_WORD); - /* Parse through to the first unescaped space. */ i = *pos; @@ -267,8 +264,6 @@ mdoc_argv(struct mdoc *m, int line, int tok, /* XXX - restore saved zeroed byte. */ if (sv) buf[*pos - 1] = sv; - if ( ! mdoc_pwarn(m, line, i, EARGVPARM)) - return(ARGV_ERROR); return(ARGV_WORD); } @@ -391,8 +386,8 @@ mdoc_args(struct mdoc *m, int line, static int -args(struct mdoc *m, int line, - int *pos, char *buf, int fl, char **v) +args(struct mdoc *m, int line, int *pos, + char *buf, int fl, char **v) { int i; char *p, *pp; @@ -406,10 +401,6 @@ args(struct mdoc *m, int line, if ( ! mdoc_pwarn(m, line, *pos, EQUOTPARM)) return(ARGS_ERROR); - if ( ! (fl & ARGS_ARGVLIKE) && '-' == buf[*pos]) - if ( ! mdoc_pwarn(m, line, *pos, EARGVPARM)) - return(ARGS_ERROR); - /* * If the first character is a delimiter and we're to look for * delimited strings, then pass down the buffer seeing if it @@ -500,10 +491,10 @@ args(struct mdoc *m, int line, if (p && 0 == *p) if ( ! mdoc_pwarn(m, line, *pos, ECOLEMPTY)) - return(0); + return(ARGS_ERROR); if (p && 0 == *p && p > *v && ' ' == *(p - 1)) if ( ! mdoc_pwarn(m, line, *pos, ETAILWS)) - return(0); + return(ARGS_ERROR); if (p) return(ARGS_PHRASE); @@ -515,7 +506,7 @@ args(struct mdoc *m, int line, if (p > *v && ' ' == *(p - 1)) if ( ! mdoc_pwarn(m, line, *pos, ETAILWS)) - return(0); + return(ARGS_ERROR); *pos += (int)(p - *v); return(ARGS_PHRASE);