version 1.171, 2011/07/24 18:15:14 |
version 1.172, 2011/07/26 14:09:01 |
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) |
{ |
{ |
char *cpp, *pp; |
char *cp; |
size_t sz; |
|
|
|
while ('\0' != *p) { |
cp = p; |
sz = strcspn(p, "\t\\"); |
for (cp = p; NULL != (p = strchr(p, '\t')); p++) { |
|
if (MDOC_LITERAL & m->flags) |
p += (int)sz; |
|
pos += (int)sz; |
|
|
|
if ('\t' == *p) { |
|
if ( ! (MDOC_LITERAL & m->flags)) |
|
mdoc_pmsg(m, ln, pos, MANDOCERR_BADTAB); |
|
p++; |
|
pos++; |
|
continue; |
continue; |
} else if ('\0' == *p) |
mdoc_pmsg(m, ln, (int)(p - cp), MANDOCERR_BADTAB); |
break; |
|
|
|
pos++; |
|
pp = ++p; |
|
|
|
if (ESCAPE_ERROR == mandoc_escape |
|
((const char **)&pp, NULL, NULL)) { |
|
mdoc_pmsg(m, ln, pos, MANDOCERR_BADESCAPE); |
|
break; |
|
} |
|
|
|
cpp = p; |
|
while (NULL != (cpp = memchr(cpp, ASCII_HYPH, pp - cpp))) |
|
*cpp = '-'; |
|
|
|
pos += pp - p; |
|
p = pp; |
|
} |
} |
} |
} |
|
|