aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--cgi.c21
-rw-r--r--cgi.h.example1
-rw-r--r--man.cgi.879
3 files changed, 74 insertions, 27 deletions
diff --git a/cgi.c b/cgi.c
index 00f033ef..e246e7fd 100644
--- a/cgi.c
+++ b/cgi.c
@@ -1,4 +1,4 @@
-/* $Id: cgi.c,v 1.72 2014/07/13 12:55:45 schwarze Exp $ */
+/* $Id: cgi.c,v 1.73 2014/07/13 15:38:36 schwarze Exp $ */
/*
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2014 Ingo Schwarze <schwarze@usta.de>
@@ -250,14 +250,25 @@ http_parse(struct req *req, char *p)
if (0 == strcmp(key, "query"))
req->q.expr = val;
- else if (0 == strcmp(key, "manpath"))
+ else if (0 == strcmp(key, "manpath")) {
+#ifdef COMPAT_OLDURI
+ if (0 == strncmp(val, "OpenBSD ", 8)) {
+ val[7] = '-';
+ if ('C' == val[8])
+ val[8] = 'c';
+ }
+#endif
req->q.manpath = val;
- else if (0 == strcmp(key, "apropos"))
+ } else if (0 == strcmp(key, "apropos"))
req->q.equal = !strcmp(val, "0");
- else if (0 == strcmp(key, "sec") ||
- 0 == strcmp(key, "sektion")) {
+ else if (0 == strcmp(key, "sec")) {
if (strcmp(val, "0"))
req->q.sec = val;
+#ifdef COMPAT_OLDURI
+ } else if (0 == strcmp(key, "sektion")) {
+ if (strcmp(val, "0"))
+ req->q.sec = val;
+#endif
} else if (0 == strcmp(key, "arch")) {
if (strcmp(val, "default"))
req->q.arch = val;
diff --git a/cgi.h.example b/cgi.h.example
index 95508def..4f7273b1 100644
--- a/cgi.h.example
+++ b/cgi.h.example
@@ -5,3 +5,4 @@
#define CUSTOMIZE_TITLE "Manual pages with mandoc"
#define CUSTOMIZE_BEGIN "<H2>\nManual pages with " \
"<A HREF=\"http://mdocml.bsd.lv/\">mandoc</A>\n</H2>"
+#define COMPAT_OLDURI Yes
diff --git a/man.cgi.8 b/man.cgi.8
index e42f00eb..d68da6c2 100644
--- a/man.cgi.8
+++ b/man.cgi.8
@@ -1,4 +1,4 @@
-.\" $Id: man.cgi.8,v 1.5 2014/07/13 09:39:32 schwarze Exp $
+.\" $Id: man.cgi.8,v 1.6 2014/07/13 15:38:36 schwarze Exp $
.\"
.\" Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org>
.\"
@@ -159,6 +159,62 @@ When using
the
.Xr slowcgi 8
proxy daemon is needed to translate FastCGI requests to plain old CGI.
+.Pp
+To compile
+.Nm ,
+first copy
+.Pa cgi.h.example
+to
+.Pa cgi.h
+and edit it according to your needs.
+It contains the following compile-time definitions:
+.Bl -tag -width Ds
+.It Ev COMPAT_OLDURI
+Only useful for running on www.openbsd.org to deal with old URIs containing
+.Qq "manpath=OpenBSD "
+where the blank character has to be translated to a hyphen.
+When compiling for other sites, this definition can be deleted.
+.It Ev CSS_DIR
+An optional path to the directory containing the CSS files,
+to be specified relative to the server's document root,
+and to be specified without a trailing slash.
+When not specified, the CSS files
+are assumed to be in the document root.
+This is used in generated HTML code.
+.It Ev CUSTOMIZE_BEGIN
+A HTML string to be inserted right after opening the
+.Aq BODY
+element.
+.It Ev CUSTOMIZE_TITLE
+An ASCII string to be used for the HTML
+.Aq TITLE
+element.
+.It Ev MAN_DIR
+A path to the
+.Nm
+data directory to be used instead of
+.Pa /var/www/man ,
+relative to the web server
+.Xr chroot 2
+directory, to be specified without a trailing slash.
+This is prepended to the manpath when opening
+.Xr mandoc.db 5
+and manual page files.
+.El
+.Pp
+After editing
+.Pa cgi.h ,
+run
+.Pp
+.Dl make man.cgi
+.Pp
+and copy the files to the proper locations.
+Reading the
+.Cm installcgi
+target in the
+.Pa Makefile
+can help with that, but do not run it without carefully checking it
+because the directory layouts of web servers vary greatly.
.Ss URI interface
.Nm
uniform resource identifiers are not needed for interactive use,
@@ -283,27 +339,6 @@ source file located below the
.Dq OpenBSD-current
manpath.
.El
-.Sh COMPILE-TIME DEFINES
-.Bl -tag -width Ds
-.It Ev CSS_DIR
-An optional path to the directory containing the CSS files,
-to be specified relative to the server's document root,
-and to be specified without a trailing slash.
-When not specified, the CSS files
-are assumed to be in the document root.
-This is used in generated HTML code.
-.It Ev MAN_DIR
-A path to the
-.Nm
-data directory to be used instead of
-.Pa /var/www/man ,
-relative to the web server
-.Xr chroot 2
-directory, to be specified without a trailing slash.
-This is prepended to the manpath when opening
-.Xr mandoc.db 5
-and manual page files.
-.El
.Sh COMPATIBILITY
The
.Nm