aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mdoc.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2015-04-23 16:17:44 +0000
committerIngo Schwarze <schwarze@openbsd.org>2015-04-23 16:17:44 +0000
commitb515ea6c4c885e69aebc0e97046ef428a4c9903d (patch)
tree01890e4390df99040aec3987328c4b8c62613c9a /mdoc.c
parent9aa3298c8841b1d552b53f1c900c0409fad69543 (diff)
downloadmandoc-b515ea6c4c885e69aebc0e97046ef428a4c9903d.tar.gz
mandoc-b515ea6c4c885e69aebc0e97046ef428a4c9903d.tar.zst
mandoc-b515ea6c4c885e69aebc0e97046ef428a4c9903d.zip
Unify mdoc_deroff() and man_deroff() into a common function deroff().
No functional change except that for mdoc(7), it now skips leading escape sequences just like it already did for man(7). Escape sequences rarely occur in mdoc(7) code and if they do, skipping them is an improvement in this context. Minus 30 lines of code.
Diffstat (limited to 'mdoc.c')
-rw-r--r--mdoc.c41
1 files changed, 1 insertions, 40 deletions
diff --git a/mdoc.c b/mdoc.c
index 7fad2cff..a48dc223 100644
--- a/mdoc.c
+++ b/mdoc.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc.c,v 1.251 2015/04/23 15:35:59 schwarze Exp $ */
+/* $Id: mdoc.c,v 1.252 2015/04/23 16:17:44 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012-2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -507,42 +507,3 @@ mdoc_isdelim(const char *p)
return(DELIM_NONE);
}
-
-void
-mdoc_deroff(char **dest, const struct roff_node *n)
-{
- char *cp;
- size_t sz;
-
- if (n->type != ROFFT_TEXT) {
- for (n = n->child; n; n = n->next)
- mdoc_deroff(dest, n);
- return;
- }
-
- /* Skip leading whitespace. */
-
- for (cp = n->string; '\0' != *cp; cp++)
- if (0 == isspace((unsigned char)*cp))
- break;
-
- /* Skip trailing whitespace. */
-
- for (sz = strlen(cp); sz; sz--)
- if (0 == isspace((unsigned char)cp[sz-1]))
- break;
-
- /* Skip empty strings. */
-
- if (0 == sz)
- return;
-
- if (NULL == *dest) {
- *dest = mandoc_strndup(cp, sz);
- return;
- }
-
- mandoc_asprintf(&cp, "%s %*s", *dest, (int)sz, cp);
- free(*dest);
- *dest = cp;
-}