=================================================================== RCS file: /cvs/mandoc/mdoc_argv.c,v retrieving revision 1.73 retrieving revision 1.75 diff -u -p -r1.73 -r1.75 --- mandoc/mdoc_argv.c 2011/03/23 15:46:02 1.73 +++ mandoc/mdoc_argv.c 2011/04/17 09:13:01 1.75 @@ -1,4 +1,4 @@ -/* $Id: mdoc_argv.c,v 1.73 2011/03/23 15:46:02 kristaps Exp $ */ +/* $Id: mdoc_argv.c,v 1.75 2011/04/17 09:13:01 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * @@ -568,26 +568,10 @@ args(struct mdoc *m, int line, int *pos, return(ARGS_QWORD); } - /* - * A non-quoted term progresses until either the end of line or - * a non-escaped whitespace. - */ + p = &buf[*pos]; + *v = mandoc_getarg(m->parse, &p, line, + ! (ARGS_NOWARN & fl), pos); - for ( ; buf[*pos]; (*pos)++) - if (*pos && ' ' == buf[*pos] && '\\' != buf[*pos - 1]) - break; - - if ('\0' == buf[*pos]) - return(ARGS_WORD); - - buf[(*pos)++] = '\0'; - - while (' ' == buf[*pos]) - (*pos)++; - - if ('\0' == buf[*pos] && ! (ARGS_NOWARN & fl)) - mdoc_pmsg(m, line, *pos, MANDOCERR_EOLNSPACE); - return(ARGS_WORD); } @@ -652,40 +636,40 @@ args_checkpunct(struct mdoc *m, const char *buf, int i static enum mdocargt argv_a2arg(enum mdoct tok, const char *p) { - const enum mdocargt *args; + const enum mdocargt *argsp; - args = NULL; + argsp = NULL; switch (tok) { case (MDOC_An): - args = args_An; + argsp = args_An; break; case (MDOC_Bd): - args = args_Bd; + argsp = args_Bd; break; case (MDOC_Bf): - args = args_Bf; + argsp = args_Bf; break; case (MDOC_Bk): - args = args_Bk; + argsp = args_Bk; break; case (MDOC_Bl): - args = args_Bl; + argsp = args_Bl; break; case (MDOC_Rv): /* FALLTHROUGH */ case (MDOC_Ex): - args = args_Ex; + argsp = args_Ex; break; default: return(MDOC_ARG_MAX); } - assert(args); + assert(argsp); - for ( ; MDOC_ARG_MAX != *args ; args++) - if (0 == strcmp(p, mdoc_argnames[*args])) - return(*args); + for ( ; MDOC_ARG_MAX != *argsp ; argsp++) + if (0 == strcmp(p, mdoc_argnames[*argsp])) + return(*argsp); return(MDOC_ARG_MAX); }