version 1.71, 2011/07/24 18:15:14 |
version 1.72, 2011/07/26 14:09:01 |
Line 207 check_root(CHKARGS) |
|
Line 207 check_root(CHKARGS) |
|
} |
} |
|
|
static void |
static void |
check_text(CHKARGS) |
check_text(CHKARGS) |
{ |
{ |
char *p, *pp, *cpp; |
char *cp, *p; |
int pos; |
|
size_t sz; |
|
|
|
p = n->string; |
cp = p = n->string; |
pos = n->pos + 1; |
for (cp = p; NULL != (p = strchr(p, '\t')); p++) { |
|
if (MAN_LITERAL & m->flags) |
while ('\0' != *p) { |
|
sz = strcspn(p, "\t\\"); |
|
|
|
p += (int)sz; |
|
pos += (int)sz; |
|
|
|
if ('\t' == *p) { |
|
if ( ! (MAN_LITERAL & m->flags)) |
|
man_pmsg(m, n->line, pos, MANDOCERR_BADTAB); |
|
p++; |
|
pos++; |
|
continue; |
continue; |
} else if ('\0' == *p) |
man_pmsg(m, n->line, (int)(p - cp), MANDOCERR_BADTAB); |
break; |
|
|
|
pos++; |
|
pp = ++p; |
|
|
|
if (ESCAPE_ERROR == mandoc_escape |
|
((const char **)&pp, NULL, NULL)) { |
|
man_pmsg(m, n->line, pos, MANDOCERR_BADESCAPE); |
|
break; |
|
} |
|
|
|
cpp = p; |
|
while (NULL != (cpp = memchr(cpp, ASCII_HYPH, pp - cpp))) |
|
*cpp = '-'; |
|
|
|
pos += pp - p; |
|
p = pp; |
|
} |
} |
} |
} |
|
|