version 1.73, 2011/03/23 15:46:02 |
version 1.75, 2011/04/17 09:13:01 |
Line 568 args(struct mdoc *m, int line, int *pos, |
|
Line 568 args(struct mdoc *m, int line, int *pos, |
|
return(ARGS_QWORD); |
return(ARGS_QWORD); |
} |
} |
|
|
/* |
p = &buf[*pos]; |
* A non-quoted term progresses until either the end of line or |
*v = mandoc_getarg(m->parse, &p, line, |
* a non-escaped whitespace. |
! (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); |
return(ARGS_WORD); |
} |
} |
|
|
Line 652 args_checkpunct(struct mdoc *m, const char *buf, int i |
|
Line 636 args_checkpunct(struct mdoc *m, const char *buf, int i |
|
static enum mdocargt |
static enum mdocargt |
argv_a2arg(enum mdoct tok, const char *p) |
argv_a2arg(enum mdoct tok, const char *p) |
{ |
{ |
const enum mdocargt *args; |
const enum mdocargt *argsp; |
|
|
args = NULL; |
argsp = NULL; |
|
|
switch (tok) { |
switch (tok) { |
case (MDOC_An): |
case (MDOC_An): |
args = args_An; |
argsp = args_An; |
break; |
break; |
case (MDOC_Bd): |
case (MDOC_Bd): |
args = args_Bd; |
argsp = args_Bd; |
break; |
break; |
case (MDOC_Bf): |
case (MDOC_Bf): |
args = args_Bf; |
argsp = args_Bf; |
break; |
break; |
case (MDOC_Bk): |
case (MDOC_Bk): |
args = args_Bk; |
argsp = args_Bk; |
break; |
break; |
case (MDOC_Bl): |
case (MDOC_Bl): |
args = args_Bl; |
argsp = args_Bl; |
break; |
break; |
case (MDOC_Rv): |
case (MDOC_Rv): |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case (MDOC_Ex): |
case (MDOC_Ex): |
args = args_Ex; |
argsp = args_Ex; |
break; |
break; |
default: |
default: |
return(MDOC_ARG_MAX); |
return(MDOC_ARG_MAX); |
} |
} |
|
|
assert(args); |
assert(argsp); |
|
|
for ( ; MDOC_ARG_MAX != *args ; args++) |
for ( ; MDOC_ARG_MAX != *argsp ; argsp++) |
if (0 == strcmp(p, mdoc_argnames[*args])) |
if (0 == strcmp(p, mdoc_argnames[*argsp])) |
return(*args); |
return(*argsp); |
|
|
return(MDOC_ARG_MAX); |
return(MDOC_ARG_MAX); |
} |
} |