version 1.166, 2011/04/03 09:53:50 |
version 1.167, 2011/04/09 15:29:40 |
Line 545 check_argv(struct mdoc *m, struct mdoc_node *n, struct |
|
Line 545 check_argv(struct mdoc *m, struct mdoc_node *n, struct |
|
static void |
static void |
check_text(struct mdoc *m, int ln, int pos, char *p) |
check_text(struct mdoc *m, int ln, int pos, char *p) |
{ |
{ |
int c; |
char *cpp, *pp; |
size_t sz; |
size_t sz; |
|
|
for ( ; *p; p++, pos++) { |
while ('\0' != *p) { |
sz = strcspn(p, "\t\\"); |
sz = strcspn(p, "\t\\"); |
p += (int)sz; |
|
|
|
if ('\0' == *p) |
p += (int)sz; |
break; |
|
|
|
pos += (int)sz; |
pos += (int)sz; |
|
|
if ('\t' == *p) { |
if ('\t' == *p) { |
if ( ! (MDOC_LITERAL & m->flags)) |
if ( ! (MDOC_LITERAL & m->flags)) |
mdoc_pmsg(m, ln, pos, MANDOCERR_BADTAB); |
mdoc_pmsg(m, ln, pos, MANDOCERR_BADTAB); |
|
p++; |
|
pos++; |
continue; |
continue; |
} |
} else if ('\0' == *p) |
|
break; |
|
|
if (0 == (c = mandoc_special(p))) { |
pos++; |
|
pp = ++p; |
|
|
|
if (ESCAPE_ERROR == mandoc_escape |
|
((const char **)&pp, NULL, NULL)) { |
mdoc_pmsg(m, ln, pos, MANDOCERR_BADESCAPE); |
mdoc_pmsg(m, ln, pos, MANDOCERR_BADESCAPE); |
continue; |
break; |
} |
} |
|
|
p += c - 1; |
cpp = p; |
pos += c - 1; |
while (NULL != (cpp = memchr(cpp, ASCII_HYPH, pp - cpp))) |
|
*cpp = '-'; |
|
|
|
pos += pp - p; |
|
p = pp; |
} |
} |
} |
} |
|
|