diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2014-07-12 18:32:47 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2014-07-12 18:32:47 +0000 |
commit | dc4bfc16fa380a3b20f7c13d22ac797e7c540c3a (patch) | |
tree | a029fbda5aa1738fde29ed7262c1adda91b10f73 | |
parent | aae3ab3e68edab90a23978db94cca91886c1a1f6 (diff) | |
download | mandoc-dc4bfc16fa380a3b20f7c13d22ac797e7c540c3a.tar.gz |
No need for run-time configuration, add minimal compile-time
configuration facilities, just two paths and two HTML strings.
Show the title on all pages, not just the index page.
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | cgi.c | 24 | ||||
-rw-r--r-- | cgi.h.example | 7 |
3 files changed, 19 insertions, 18 deletions
@@ -65,7 +65,10 @@ INSTALL_MAN = $(INSTALL_DATA) # the dependency on SQLite3, comment the following two lines. DBLIB = -L/usr/local/lib -lsqlite3 DBBIN = makewhatis manpage apropos -DBBIN += man.cgi + +# To build man.cgi, copy cgi.h.example to cgi.h, edit it, and +# either enable the following line or run "make man.cgi" by hand. +#DBBIN += man.cgi # OpenBSD has the ohash functions in libutil. # Comment the following line if your system doesn't. @@ -250,6 +253,7 @@ msec.o: msec.in roff.o: predefs.in st.o: st.in vol.o: vol.in +cgi.o: cgi.h $(LIBMAN_OBJS): libman.h $(LIBMDOC_OBJS): libmdoc.h @@ -33,6 +33,7 @@ #include "main.h" #include "manpath.h" #include "mansearch.h" +#include "cgi.h" /* * A query as passed to the search function. @@ -78,8 +79,6 @@ static void resp_search(const struct req *, static void resp_searchform(const struct req *); static const char *scriptname; /* CGI script name */ -static const char *mandir; /* contains all manpath directories */ -static const char *cssdir; /* css directory */ static const char *httphost; /* hostname used in the URIs */ /* @@ -314,11 +313,11 @@ resp_begin_html(int code, const char *msg) " TYPE=\"text/css\" media=\"all\">\n" "<LINK REL=\"stylesheet\" HREF=\"%s/man.css\"" " TYPE=\"text/css\" media=\"all\">\n" - "<TITLE>System Manpage Reference</TITLE>\n" + "<TITLE>%s</TITLE>\n" "</HEAD>\n" "<BODY>\n" "<!-- Begin page content. //-->\n", - cssdir, cssdir); + CSS_DIR, CSS_DIR, CUSTOMIZE_TITLE); } static void @@ -334,6 +333,7 @@ resp_searchform(const struct req *req) { int i; + puts(CUSTOMIZE_BEGIN); puts("<!-- Begin search form. //-->"); printf("<DIV ID=\"mancgi\">\n" "<FORM ACTION=\"%s\" METHOD=\"get\">\n" @@ -391,10 +391,6 @@ resp_index(const struct req *req) { resp_begin_html(200, NULL); - puts("<H1>\n" - "Online manuals with " - "<A HREF=\"http://mdocml.bsd.lv/\">mandoc</A>\n" - "</H1>"); resp_searchform(req); printf("<P>\n" "This web interface is documented in the " @@ -801,27 +797,21 @@ main(void) /* Scan our run-time environment. */ - if (NULL == (mandir = getenv("MAN_DIR"))) - mandir = "/man"; - if (NULL == (scriptname = getenv("SCRIPT_NAME"))) scriptname = ""; - if (NULL == (cssdir = getenv("CSS_DIR"))) - cssdir = ""; - if (NULL == (httphost = getenv("HTTP_HOST"))) httphost = "localhost"; /* - * First we change directory into the mandir so that + * First we change directory into the MAN_DIR so that * subsequent scanning for manpath directories is rooted * relative to the same position. */ - if (-1 == chdir(mandir)) { + if (-1 == chdir(MAN_DIR)) { fprintf(stderr, "MAN_DIR: %s: %s\n", - mandir, strerror(errno)); + MAN_DIR, strerror(errno)); resp_error_internal(); return(EXIT_FAILURE); } diff --git a/cgi.h.example b/cgi.h.example new file mode 100644 index 00000000..95508def --- /dev/null +++ b/cgi.h.example @@ -0,0 +1,7 @@ +/* Example compile-time configuration file for man.cgi(8). */ + +#define MAN_DIR "/var/www/man" +#define CSS_DIR "" +#define CUSTOMIZE_TITLE "Manual pages with mandoc" +#define CUSTOMIZE_BEGIN "<H2>\nManual pages with " \ + "<A HREF=\"http://mdocml.bsd.lv/\">mandoc</A>\n</H2>" |