=================================================================== RCS file: /cvs/mandoc/mdoc_argv.c,v retrieving revision 1.47 retrieving revision 1.49 diff -u -p -r1.47 -r1.49 --- mandoc/mdoc_argv.c 2010/05/15 04:47:38 1.47 +++ mandoc/mdoc_argv.c 2010/05/17 22:11:42 1.49 @@ -1,4 +1,4 @@ -/* $Id: mdoc_argv.c,v 1.47 2010/05/15 04:47:38 kristaps Exp $ */ +/* $Id: mdoc_argv.c,v 1.49 2010/05/17 22:11:42 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -26,6 +26,7 @@ #include #include +#include "mandoc.h" #include "libmdoc.h" #include "libmandoc.h" @@ -407,7 +408,7 @@ args(struct mdoc *m, int line, int *pos, * is unterminated. */ if (MDOC_PHRASELIT & m->flags) - if ( ! mdoc_pwarn(m, line, *pos, EQUOTTERM)) + if ( ! mdoc_pmsg(m, line, *pos, MANDOCERR_BADQUOTE)) return(ARGS_ERROR); m->flags &= ~MDOC_PHRASELIT; @@ -421,9 +422,10 @@ args(struct mdoc *m, int line, int *pos, * we ONLY care about closing delimiters. */ - if ((fl & ARGS_DELIM) && mdoc_iscdelim(buf[*pos]) > 1) { + if ((fl & ARGS_DELIM) && DELIM_CLOSE == mdoc_iscdelim(buf[*pos])) { for (i = *pos; buf[i]; ) { - if (mdoc_iscdelim(buf[i]) < 2) + enum mdelim d = mdoc_iscdelim(buf[i]); + if (DELIM_NONE == d || DELIM_OPEN == d) break; i++; if ('\0' == buf[i] || ' ' != buf[i]) @@ -439,7 +441,7 @@ args(struct mdoc *m, int line, int *pos, return(ARGS_PUNCT); if (ARGS_NOWARN & fl) return(ARGS_PUNCT); - if ( ! mdoc_pwarn(m, line, *pos, ETAILWS)) + if ( ! mdoc_pmsg(m, line, *pos, MANDOCERR_EOLNSPACE)) return(ARGS_ERROR); return(ARGS_PUNCT); } @@ -494,7 +496,7 @@ args(struct mdoc *m, int line, int *pos, /* Whitespace check for eoln case... */ if (0 == *p && ' ' == *(p - 1) && ! (ARGS_NOWARN & fl)) - if ( ! mdoc_pwarn(m, line, *pos, ETAILWS)) + if ( ! mdoc_pmsg(m, line, *pos, MANDOCERR_EOLNSPACE)) return(ARGS_ERROR); *pos += (int)(p - *v); @@ -539,7 +541,7 @@ args(struct mdoc *m, int line, int *pos, if ('\0' == buf[*pos]) { if (ARGS_NOWARN & fl || MDOC_PPHRASE & m->flags) return(ARGS_QWORD); - if ( ! mdoc_pwarn(m, line, *pos, EQUOTTERM)) + if ( ! mdoc_pmsg(m, line, *pos, MANDOCERR_BADQUOTE)) return(ARGS_ERROR); return(ARGS_QWORD); } @@ -554,7 +556,7 @@ args(struct mdoc *m, int line, int *pos, (*pos)++; if (0 == buf[*pos] && ! (ARGS_NOWARN & fl)) - if ( ! mdoc_pwarn(m, line, *pos, ETAILWS)) + if ( ! mdoc_pmsg(m, line, *pos, MANDOCERR_EOLNSPACE)) return(ARGS_ERROR); return(ARGS_QWORD); @@ -578,7 +580,7 @@ args(struct mdoc *m, int line, int *pos, (*pos)++; if ('\0' == buf[*pos] && ! (ARGS_NOWARN & fl)) - if ( ! mdoc_pwarn(m, line, *pos, ETAILWS)) + if ( ! mdoc_pmsg(m, line, *pos, MANDOCERR_EOLNSPACE)) return(ARGS_ERROR); return(ARGS_WORD); @@ -750,10 +752,11 @@ argv_single(struct mdoc *m, int line, ppos = *pos; ac = args(m, line, pos, buf, 0, &p); - if (ARGS_ERROR == ac) + if (ARGS_EOLN == ac) { + mdoc_pmsg(m, line, ppos, MANDOCERR_SYNTARGVCOUNT); return(0); - if (ARGS_EOLN == ac) - return(mdoc_perr(m, line, ppos, EARGVAL)); + } else if (ARGS_ERROR == ac) + return(0); v->sz = 1; v->value = mandoc_malloc(sizeof(char *));