aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/html.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2018-04-13 16:28:07 +0000
committerIngo Schwarze <schwarze@openbsd.org>2018-04-13 16:28:07 +0000
commit0c8f9a78c144e759fc8ce4b1b92b1787474385bd (patch)
tree5bd9b378850a798e0f4ab3c4b335909e576d80b0 /html.c
parent0fde2fa390d9a4194f8a09e5c0f5d921d8755109 (diff)
downloadmandoc-0c8f9a78c144e759fc8ce4b1b92b1787474385bd.tar.gz
mandoc-0c8f9a78c144e759fc8ce4b1b92b1787474385bd.tar.zst
mandoc-0c8f9a78c144e759fc8ce4b1b92b1787474385bd.zip
preserve comments before .Dd and .TH (typically Copyright and license)
in full HTML output, but not with -Ofragment, e.g. in man.cgi(8); suggested by Thomas Klausner <wiz at NetBSD>
Diffstat (limited to 'html.c')
-rw-r--r--html.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/html.c b/html.c
index 65f7eea4..68ec1f14 100644
--- a/html.c
+++ b/html.c
@@ -1,7 +1,7 @@
-/* $Id: html.c,v 1.220 2017/09/06 16:24:25 schwarze Exp $ */
+/* $Id: html.c,v 1.221 2018/04/13 16:28:07 schwarze Exp $ */
/*
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2011-2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2011-2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -771,6 +771,32 @@ print_gen_decls(struct html *h)
}
void
+print_gen_comment(struct html *h, struct roff_node *n)
+{
+ int wantblank;
+
+ print_word(h, "<!-- This is an automatically generated file."
+ " Do not edit.");
+ h->indent = 1;
+ wantblank = 0;
+ while (n != NULL && n->type == ROFFT_COMMENT) {
+ if (strstr(n->string, "-->") == NULL &&
+ (wantblank || *n->string != '\0')) {
+ print_endline(h);
+ print_indent(h);
+ print_word(h, n->string);
+ wantblank = *n->string != '\0';
+ }
+ n = n->next;
+ }
+ if (wantblank)
+ print_endline(h);
+ print_word(h, " -->");
+ print_endline(h);
+ h->indent = 0;
+}
+
+void
print_text(struct html *h, const char *word)
{
if (h->col && (h->flags & HTML_NOSPACE) == 0) {