=================================================================== RCS file: /cvs/mandoc/Attic/argv.c,v retrieving revision 1.2 retrieving revision 1.6 diff -u -p -r1.2 -r1.6 --- mandoc/Attic/argv.c 2008/12/28 00:34:20 1.2 +++ mandoc/Attic/argv.c 2009/01/02 14:06:16 1.6 @@ -1,4 +1,4 @@ -/* $Id: argv.c,v 1.2 2008/12/28 00:34:20 kristaps Exp $ */ +/* $Id: argv.c,v 1.6 2009/01/02 14:06:16 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -98,10 +98,8 @@ mdoc_args(struct mdoc *mdoc, int tok, int *pos, char * /* * If we're a quoted string (and quoted strings are allowed), * then parse ahead to the next quote. If none's found, it's an - * error. After, parse to the next word. We're not allowed to - * also be DELIM requests (for now). + * error. After, parse to the next word. */ - assert( ! (fl & ARGS_DELIM)); *v = &buf[++(*pos)]; @@ -135,6 +133,22 @@ lookup(int tok, const char *argv) { switch (tok) { + case (MDOC_Bf): + if (xstrcmp(argv, "emphasis")) + return(MDOC_Emphasis); + else if (xstrcmp(argv, "literal")) + return(MDOC_Literal); + else if (xstrcmp(argv, "symbolic")) + return(MDOC_Symbolic); + break; + + case (MDOC_An): + if (xstrcmp(argv, "split")) + return(MDOC_Split); + else if (xstrcmp(argv, "nosplit")) + return(MDOC_Nosplit); + break; + case (MDOC_Bd): if (xstrcmp(argv, "ragged")) return(MDOC_Ragged); @@ -178,6 +192,90 @@ lookup(int tok, const char *argv) else if (xstrcmp(argv, "compact")) return(MDOC_Compact); break; + + case (MDOC_Rv): + /* FALLTHROUGH */ + case (MDOC_Ex): + if (xstrcmp(argv, "std")) + return(MDOC_Std); + break; + + case (MDOC_St): + if (xstrcmp(argv, "p1003.1-88")) + return(MDOC_p1003_1_88); + else if (xstrcmp(argv, "p1003.1-90")) + return(MDOC_p1003_1_90); + else if (xstrcmp(argv, "p1003.1-96")) + return(MDOC_p1003_1_96); + else if (xstrcmp(argv, "p1003.1-2001")) + return(MDOC_p1003_1_2001); + else if (xstrcmp(argv, "p1003.1-2004")) + return(MDOC_p1003_1_2004); + else if (xstrcmp(argv, "p1003.1")) + return(MDOC_p1003_1); + else if (xstrcmp(argv, "p1003.1b")) + return(MDOC_p1003_1b); + else if (xstrcmp(argv, "p1003.1b-93")) + return(MDOC_p1003_1b_93); + else if (xstrcmp(argv, "p1003.1c-95")) + return(MDOC_p1003_1c_95); + else if (xstrcmp(argv, "p1003.1g-2000")) + return(MDOC_p1003_1g_2000); + else if (xstrcmp(argv, "p1003.2-92")) + return(MDOC_p1003_2_92); + else if (xstrcmp(argv, "p1003.2-95")) + return(MDOC_p1387_2_95); + else if (xstrcmp(argv, "p1003.2")) + return(MDOC_p1003_2); + else if (xstrcmp(argv, "p1387.2-95")) + return(MDOC_p1387_2); + else if (xstrcmp(argv, "isoC-90")) + return(MDOC_isoC_90); + else if (xstrcmp(argv, "isoC-amd1")) + return(MDOC_isoC_amd1); + else if (xstrcmp(argv, "isoC-tcor1")) + return(MDOC_isoC_tcor1); + else if (xstrcmp(argv, "isoC-tcor2")) + return(MDOC_isoC_tcor2); + else if (xstrcmp(argv, "isoC-99")) + return(MDOC_isoC_99); + else if (xstrcmp(argv, "ansiC")) + return(MDOC_ansiC); + else if (xstrcmp(argv, "ansiC-89")) + return(MDOC_ansiC_89); + else if (xstrcmp(argv, "ansiC-99")) + return(MDOC_ansiC_99); + else if (xstrcmp(argv, "ieee754")) + return(MDOC_ieee754); + else if (xstrcmp(argv, "iso8802-3")) + return(MDOC_iso8802_3); + else if (xstrcmp(argv, "xpg3")) + return(MDOC_xpg3); + else if (xstrcmp(argv, "xpg4")) + return(MDOC_xpg4); + else if (xstrcmp(argv, "xpg4.2")) + return(MDOC_xpg4_2); + else if (xstrcmp(argv, "xpg4.3")) + return(MDOC_xpg4_3); + else if (xstrcmp(argv, "xbd5")) + return(MDOC_xbd5); + else if (xstrcmp(argv, "xcu5")) + return(MDOC_xcu5); + else if (xstrcmp(argv, "xsh5")) + return(MDOC_xsh5); + else if (xstrcmp(argv, "xns5")) + return(MDOC_xns5); + else if (xstrcmp(argv, "xns5.2d2.0")) + return(MDOC_xns5_2d2_0); + else if (xstrcmp(argv, "xcurses4.2")) + return(MDOC_xcurses4_2); + else if (xstrcmp(argv, "susv2")) + return(MDOC_susv2); + else if (xstrcmp(argv, "susv3")) + return(MDOC_susv3); + else if (xstrcmp(argv, "svid4")) + return(MDOC_svid4); + break; default: abort(); @@ -225,39 +323,8 @@ parse(struct mdoc *mdoc, int tok, ppos = *pos; switch (v->arg) { - case(MDOC_Compact): + case(MDOC_Std): /* FALLTHROUGH */ - case(MDOC_Ragged): - /* FALLTHROUGH */ - case(MDOC_Unfilled): - /* FALLTHROUGH */ - case(MDOC_Literal): - /* FALLTHROUGH */ - case(MDOC_File): - /* FALLTHROUGH */ - case(MDOC_Bullet): - /* FALLTHROUGH */ - case(MDOC_Dash): - /* FALLTHROUGH */ - case(MDOC_Hyphen): - /* FALLTHROUGH */ - case(MDOC_Item): - /* FALLTHROUGH */ - case(MDOC_Enum): - /* FALLTHROUGH */ - case(MDOC_Tag): - /* FALLTHROUGH */ - case(MDOC_Diag): - /* FALLTHROUGH */ - case(MDOC_Hang): - /* FALLTHROUGH */ - case(MDOC_Ohang): - /* FALLTHROUGH */ - case(MDOC_Inset): - v->sz = 0; - v->value = NULL; - break; - case(MDOC_Width): /* FALLTHROUGH */ case(MDOC_Offset): @@ -300,9 +367,11 @@ parse(struct mdoc *mdoc, int tok, v->sz = i; break; + default: - abort(); - /* NOTREACHED */ + v->sz = 0; + v->value = NULL; + break; } return(1); @@ -319,14 +388,12 @@ mdoc_argv(struct mdoc *mdoc, int tok, (void)memset(v, 0, sizeof(struct mdoc_arg)); if (0 == buf[*pos]) - return(0); + return(ARGV_EOLN); assert( ! isspace(buf[*pos])); - if ('-' != buf[*pos]) { - (void)mdoc_err(mdoc, tok, *pos, ERR_SYNTAX_ARGFORM); - return(-1); - } + if ('-' != buf[*pos]) + return(ARGV_WORD); i = *pos; argv = &buf[++(*pos)]; @@ -339,7 +406,7 @@ mdoc_argv(struct mdoc *mdoc, int tok, if (MDOC_ARG_MAX == (v->arg = lookup(tok, argv))) { (void)mdoc_err(mdoc, tok, i, ERR_SYNTAX_ARG); - return(-1); + return(ARGV_ERROR); } while (buf[*pos] && isspace(buf[*pos])) @@ -349,11 +416,11 @@ mdoc_argv(struct mdoc *mdoc, int tok, ppos = *pos; if ( ! parse(mdoc, tok, v, pos, buf)) - return(-1); + return(ARGV_ERROR); if ( ! postparse(mdoc, tok, v, ppos)) - return(-1); + return(ARGV_ERROR); - return(1); + return(ARGV_ARG); }