aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/cgi.c
diff options
context:
space:
mode:
Diffstat (limited to 'cgi.c')
-rw-r--r--cgi.c30
1 files changed, 9 insertions, 21 deletions
diff --git a/cgi.c b/cgi.c
index 652a6bb5..167fd84e 100644
--- a/cgi.c
+++ b/cgi.c
@@ -1,4 +1,4 @@
-/* $Id: cgi.c,v 1.163 2018/12/14 01:18:25 schwarze Exp $ */
+/* $Id: cgi.c,v 1.164 2018/12/30 00:49:54 schwarze Exp $ */
/*
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2014, 2015, 2016, 2017, 2018 Ingo Schwarze <schwarze@usta.de>
@@ -849,7 +849,7 @@ resp_format(const struct req *req, const char *file)
{
struct manoutput conf;
struct mparse *mp;
- struct roff_man *man;
+ struct roff_meta *meta;
void *vp;
int fd;
int usepath;
@@ -860,10 +860,11 @@ resp_format(const struct req *req, const char *file)
}
mchars_alloc();
- mp = mparse_alloc(MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1,
- MANDOC_OS_OTHER, req->q.manpath);
+ mp = mparse_alloc(MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1 |
+ MPARSE_VALIDATE, MANDOC_OS_OTHER, req->q.manpath);
mparse_readfd(mp, fd, file);
close(fd);
+ meta = mparse_result(mp);
memset(&conf, 0, sizeof(conf));
conf.fragment = 1;
@@ -874,24 +875,11 @@ resp_format(const struct req *req, const char *file)
scriptname, *scriptname == '\0' ? "" : "/",
usepath ? req->q.manpath : "", usepath ? "/" : "");
- mparse_result(mp, &man, NULL);
- if (man == NULL) {
- warnx("fatal mandoc error: %s/%s", req->q.manpath, file);
- pg_error_internal();
- mparse_free(mp);
- mchars_free();
- return;
- }
-
vp = html_alloc(&conf);
-
- if (man->macroset == MACROSET_MDOC) {
- mdoc_validate(man);
- html_mdoc(vp, man);
- } else {
- man_validate(man);
- html_man(vp, man);
- }
+ if (meta->macroset == MACROSET_MDOC)
+ html_mdoc(vp, meta);
+ else
+ html_man(vp, meta);
html_free(vp);
mparse_free(mp);