+
+static int
+check_text(POSTARGS)
+{
+ const char *p;
+ int pos, c;
+
+ assert(n->string);
+
+ for (p = n->string, pos = n->pos + 1; *p; p++, pos++) {
+ if ('\\' == *p) {
+ c = mandoc_special(p);
+ if (c) {
+ p += c - 1;
+ pos += c - 1;
+ continue;
+ }
+ if ( ! (MAN_IGN_ESCAPE & m->pflags))
+ return(man_perr(m, n->line, pos, WESCAPE));
+ if ( ! man_pwarn(m, n->line, pos, WESCAPE))
+ return(0);
+ continue;
+ }
+
+ if ('\t' == *p || isprint((u_char)*p))
+ continue;
+
+ if (MAN_IGN_CHARS & m->pflags)
+ return(man_pwarn(m, n->line, pos, WNPRINT));
+ return(man_perr(m, n->line, pos, WNPRINT));
+ }
+
+ return(1);