=================================================================== RCS file: /cvs/mandoc/cgi.c,v retrieving revision 1.54 retrieving revision 1.57 diff -u -p -r1.54 -r1.57 --- mandoc/cgi.c 2014/07/09 09:19:03 1.54 +++ mandoc/cgi.c 2014/07/09 12:09:04 1.57 @@ -1,4 +1,4 @@ -/* $Id: cgi.c,v 1.54 2014/07/09 09:19:03 schwarze Exp $ */ +/* $Id: cgi.c,v 1.57 2014/07/09 12:09:04 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons * Copyright (c) 2014 Ingo Schwarze @@ -27,13 +27,6 @@ #include #include -#if defined(__sun) -/* for stat() */ -#include -#include -#include -#endif - #include "mandoc.h" #include "mandoc_aux.h" #include "main.h" @@ -61,7 +54,7 @@ struct query { struct req { struct query q; char **p; /* array of available manroots */ - size_t psz; + size_t psz; /* number of available manroots */ enum page page; }; @@ -129,6 +122,7 @@ html_putchar(char c) break; } } + static void http_printquery(const struct req *req) { @@ -151,7 +145,6 @@ http_printquery(const struct req *req) } } - static void html_printquery(const struct req *req) { @@ -683,7 +676,8 @@ format(const struct req *req, const char *file) return; } - mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_FATAL, NULL, NULL); + mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_FATAL, NULL, + req->q.manroot); rc = mparse_readfd(mp, fd, file); close(fd); @@ -940,6 +934,8 @@ pathgen(struct req *req) return; while (NULL != (dp = fgetln(fp, &dpsz))) { + if ('\n' == dp[dpsz - 1]) + dpsz--; req->p = mandoc_realloc(req->p, (req->psz + 1) * sizeof(char *)); req->p[req->psz++] = mandoc_strndup(dp, dpsz);