summaryrefslogtreecommitdiffstatshomepage
path: root/mdoc_validate.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-07-26 14:09:01 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-07-26 14:09:01 +0000
commit68af4dca6a1390f9087264cfbd5cbf49bfc12963 (patch)
tree9ed50d91fb43c9a70832dcca86f93242f852d197 /mdoc_validate.c
parent499b7cc2df175e8f1cd3a0a7db00455e691d03de (diff)
downloadmandoc-68af4dca6a1390f9087264cfbd5cbf49bfc12963.tar.gz
mandoc-68af4dca6a1390f9087264cfbd5cbf49bfc12963.tar.zst
mandoc-68af4dca6a1390f9087264cfbd5cbf49bfc12963.zip
Move checking of escapes into roff.c, where we're already stepping
through looking for user-defined escapes. This clears up a nice bit of validation code.
Diffstat (limited to 'mdoc_validate.c')
-rw-r--r--mdoc_validate.c38
1 files changed, 6 insertions, 32 deletions
diff --git a/mdoc_validate.c b/mdoc_validate.c
index b8f277fa..c2920321 100644
--- a/mdoc_validate.c
+++ b/mdoc_validate.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_validate.c,v 1.171 2011/07/24 18:15:14 kristaps Exp $ */
+/* $Id: mdoc_validate.c,v 1.172 2011/07/26 14:09:01 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -545,39 +545,13 @@ check_argv(struct mdoc *m, struct mdoc_node *n, struct mdoc_argv *v)
static void
check_text(struct mdoc *m, int ln, int pos, char *p)
{
- char *cpp, *pp;
- size_t sz;
-
- while ('\0' != *p) {
- sz = strcspn(p, "\t\\");
-
- p += (int)sz;
- pos += (int)sz;
+ char *cp;
- if ('\t' == *p) {
- if ( ! (MDOC_LITERAL & m->flags))
- mdoc_pmsg(m, ln, pos, MANDOCERR_BADTAB);
- p++;
- pos++;
+ cp = p;
+ for (cp = p; NULL != (p = strchr(p, '\t')); p++) {
+ if (MDOC_LITERAL & m->flags)
continue;
- } else if ('\0' == *p)
- 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;
+ mdoc_pmsg(m, ln, (int)(p - cp), MANDOCERR_BADTAB);
}
}