]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
This commit was manufactured by cvs2svn to create branch
author(no author) <(no author)@unknown>
Thu, 24 Apr 2003 23:25:11 +0000 (23:25 +0000)
committer(no author) <(no author)@unknown>
Thu, 24 Apr 2003 23:25:11 +0000 (23:25 +0000)
'APACHE_2_0_BRANCH'.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/APACHE_2_0_BRANCH@99591 13f79535-47bb-0310-9956-ffa450edef68

docs/man/apachectl.8 [new file with mode: 0644]
docs/man/httpd.8 [new file with mode: 0644]
docs/manual/style/man/man.en.xsl [new file with mode: 0644]
docs/manual/style/man/manpage.xsl [new file with mode: 0644]

diff --git a/docs/man/apachectl.8 b/docs/man/apachectl.8
new file mode 100644 (file)
index 0000000..7adc8d6
--- /dev/null
@@ -0,0 +1,93 @@
+.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+.\" DO NOT EDIT! Generated from XML source.
+.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+.de Sh \" Subsection
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Ip \" List item
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.TH "APACHECTL" 8 "2003-04-23" "Apache HTTP Server" "apachectl"
+
+.SH "SYNOPSIS"
+
+.PP
+When acting in pass-through mode, apachectl can take all the arguments available for the httpd binary\&.
+
+.PP
+\fBapachectl\fR [ \fIhttpd-argument\fR ]
+
+.PP
+When acting in SysV init mode, apachectl takes simple, one-word commands, defined below\&.
+
+.PP
+\fBapachectl\fR\fIcommand\fR
+
+
+.SH "SUMMARY"
+
+.PP
+apachectl is a front end to the Apache HyperText Transfer Protocol (HTTP) server\&. It is designed to help the administrator control the functioning of the Apache httpd daemon\&.
+
+.PP
+The apachectl script can operate in two modes\&. First, it can act as a simple front-end to the httpd command that simply sets any necessary environment variables and then invokes httpd, passing through any command line arguments\&. Second, apachectl can act as a SysV init script, taking simple one-word arguments like start, restart, and stop, and translating them into appropriate signals to httpd\&.
+
+.PP
+If your Apache installation uses non-standard paths, you will need to edit the apachectl script to set the appropriate paths to the httpd binary\&. You can also specify any necessary httpd command line arguments\&. See the comments in the script for details\&.
+
+.PP
+The apachectl script returns a 0 exit value on success, and >0 if an error occurs\&. For more details, view the comments in the script\&.
+
+
+.SH "OPTIONS"
+
+.PP
+Only the SysV init-style options are defined here\&. Other arguments are defined on the httpd manual page\&.
+
+.RS
+
+.TP
+start
+Start the Apache httpd daemon\&. Gives an error if it is already running\&. This is equivalent to apachectl -k start\&.
+.TP
+stop
+Stops the Apache httpd daemon\&. This is equivalent to apachectl -k stop\&.
+.TP
+restart
+Restarts the Apache httpd daemon\&. If the daemon is not running, it is started\&. This command automatically checks the configuration files as in configtest before initiating the restart to make sure the daemon doesn't die\&. This is equivalent to apachectl -k restart\&.
+.TP
+fullstatus
+Displays a full status report from mod_status\&. For this to work, you need to have mod_status enabled on your server and a text-based browser such as lynx available on your system\&. The URL used to access the status report can be set by editing the STATUSURL variable in the script\&.
+.TP
+status
+Displays a brief status report\&. Similar to the fullstatus option, except that the list of requests currently being served is omitted\&.
+.TP
+graceful
+Gracefully restarts the Apache httpd daemon\&. If the daemon is not running, it is started\&. This differs from a normal restart in that currently open connections are not aborted\&. A side effect is that old log files will not be closed immediately\&. This means that if used in a log rotation script, a substantial delay may be necessary to ensure that the old log files are closed before processing them\&. This command automatically checks the configuration files as in configtest before initiating the restart to make sure Apache doesn't die\&. This is equivalent to apachectl -k graceful\&.
+.TP
+configtest
+Run a configuration file syntax test\&. It parses the configuration files and either reports Syntax Ok or detailed information about the particular syntax error\&. This is equivalent to apachectl -t\&.
+.RE
+
+.PP
+The following additional option is available, but deprecated\&.
+
+.RS
+
+.TP
+startssl
+This is equivalent to apachectl -k start -DSSL\&. We recommend that you use that command explicitly, or you adjust your httpd\&.conf to remove the <IfDefine> section so that SSL will always be available\&.
+.RE
+
diff --git a/docs/man/httpd.8 b/docs/man/httpd.8
new file mode 100644 (file)
index 0000000..33916b0
--- /dev/null
@@ -0,0 +1,117 @@
+.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+.\" DO NOT EDIT! Generated from XML source.
+.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+.de Sh \" Subsection
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Ip \" List item
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.TH "HTTPD" 8 "2003-04-23" "Apache HTTP Server" "httpd"
+
+.SH "SYNOPSIS"
+
+.PP
+\fBhttpd\fR [ -\fBd\fR\fIserverroot\fR ] [ -\fBf\fR\fIconfig\fR ] [ -\fBC\fR\fIdirective\fR ] [ -\fBc\fR\fIdirective\fR ] [ -\fBD\fR\fIparameter\fR ] [ -\fBe\fR\fIlevel\fR ] [ -\fBE\fR\fIfile\fR ] [ \fB-k\fR start|restart|graceful|stop ] [ -\fBR\fR\fIdirectory\fR ] [ -\fBh\fR ] [ -\fBl\fR ] [ -\fBL\fR ] [ -\fBS\fR ] [ -\fBt\fR ] [ -\fBv\fR ] [ -\fBV\fR ] [ -\fBX\fR ]
+
+.PP
+On Windows systems, the following additional arguments are available:
+
+.PP
+\fBhttpd\fR [ -\fBk\fR install|config|uninstall ] [ -\fBn\fR\fIname\fR ] [ -\fBw\fR ]
+
+
+.SH "SUMMARY"
+
+.PP
+httpd is the Apache HyperText Transfer Protocol (HTTP) server program\&. It is designed to be run as a standalone daemon process\&. When used like this it will create a pool of child processes or threads to handle requests\&.
+
+.PP
+In general, httpd should not be invoked directly, but rather should be invoked via apachectl on Unix-based systems or as a service on Windows NT, 2000 and XP and as a console application on Windows 9x and ME\&.
+
+
+.SH "OPTIONS"
+
+.RS
+
+.TP
+-d \fIserverroot\fR
+Set the initial value for the ServerRoot directive to \fIserverroot\fR\&. This can be overridden by the ServerRoot directive in the configuration file\&. The default is /usr/local/apache2\&.
+.TP
+-f \fIconfig\fR
+Uses the directives in the file \fIconfig\fR on startup\&. If \fIconfig\fR does not begin with a /, then it is taken to be a path relative to the ServerRoot\&. The default is conf/httpd\&.conf\&.
+.TP
+-k start|restart|graceful|stop
+Signals httpd to start, restart, or stop\&. See Stopping Apache for more information\&.
+.TP
+-C \fIdirective\fR
+Process the configuration \fIdirective\fR before reading config files\&.
+.TP
+-c \fIdirective\fR
+Process the configuration \fIdirective\fR after reading config files\&.
+.TP
+-D \fIparameter\fR
+Sets a configuration \fIparameter \fRwhich can be used with <IfDefine> sections in the configuration files to conditionally skip or process commands at server startup and restart\&.
+.TP
+-e \fIlevel\fR
+Sets the LogLevel to \fIlevel\fR during server startup\&. This is useful for temporarily increasing the verbosity of the error messages to find problems during startup\&.
+.TP
+-E \fIfile\fR
+Send error messages during server startup to \fIfile\fR\&.
+.TP
+-R \fIdirectory\fR
+When the server is compiled using the SHARED_CORE rule, this specifies the \fIdirectory\fR for the shared object files\&.
+.TP
+-h
+Output a short summary of available command line options\&.
+.TP
+-l
+Output a list of modules compiled into the server\&. This will \fBnot\fR list dynamically loaded modules included using the LoadModule directive\&.
+.TP
+-L
+Output a list of directives together with expected arguments and places where the directive is valid\&.
+.TP
+-S
+Show the settings as parsed from the config file (currently only shows the virtualhost settings)\&.
+.TP
+-t
+Run syntax tests for configuration files only\&. The program immediately exits after these syntax parsing with either a return code of 0 (Syntax OK) or return code not equal to 0 (Syntax Error)\&. If -D \fIDUMP\fR_\fIVHOSTS \fRis also set, details of the virtual host configuration will be printed\&.
+.TP
+-v
+Print the version of httpd, and then exit\&.
+.TP
+-V
+Print the version and build parameters of httpd, and then exit\&.
+.TP
+-X
+Run httpd in debug mode\&. Only one worker will be started and the server will not detach from the console\&.
+.RE
+
+.PP
+The following arguments are available only on the Windows platform:
+
+.RS
+
+.TP
+-k install|config|uninstall
+Install Apache as a Windows NT service; change startup options for the Apache service; and uninstall the Apache service\&.
+.TP
+-n \fIname\fR
+The \fIname\fR of the Apache service to signal\&.
+.TP
+-w
+Keep the console window open on error so that the error message can be read\&.
+.RE
+
diff --git a/docs/manual/style/man/man.en.xsl b/docs/manual/style/man/man.en.xsl
new file mode 100644 (file)
index 0000000..4ebc079
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0"
+              xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output 
+  method="text"
+  encoding="ISO-8859-1"
+  indent="no"
+/>
+
+<!-- Read the localized messages from the specified language file -->
+<xsl:variable name="messages" select="document('../lang/en.xml')/messages" />
+
+<!-- Now get the real guts of the stylesheet -->
+<xsl:include href="manpage.xsl" />
+
+</xsl:stylesheet>
diff --git a/docs/manual/style/man/manpage.xsl b/docs/manual/style/man/manpage.xsl
new file mode 100644 (file)
index 0000000..9289c76
--- /dev/null
@@ -0,0 +1,459 @@
+<?xml version="1.0"?><!--
+/* ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2003 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written
+ *    permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software is based on initial work of Joe Orton <jorton@redhat.com>
+ * (contributed to the ASF) which is based on the db2man stylesheets developed
+ * by Martijn van Beers. db2man is now part of docbook-xsl, which is
+ * licensed under the following terms:
+ *
+ * Copyright
+ * =========
+ *
+ * Copyright (C) 1999, 2000, 2001, 2002 Norman Walsh
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the ``Software''), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * Except as contained in this notice, the names of individuals
+ * credited with contribution to this software shall not be used in
+ * advertising or otherwise to promote the sale, use or other
+ * dealings in this Software without prior written authorization
+ * from the individuals in question.
+ *
+ * Any stylesheet derived from this Software that is publically
+ * distributed will be identified with a different name and the
+ * version strings in any derived Software will be changed so that
+ * no possibility of confusion between the derived package and this
+ * Software will exist.
+ *
+ * Warranty
+ * ========
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+ * CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE. 
+ *
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */ -->
+<!DOCTYPE xsl:stylesheet [
+    <!ENTITY lf SYSTEM "../xsl/util/lf.xml">
+]>
+<xsl:stylesheet version="1.0"
+              xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!--                                                                      -->
+<!-- params injected from elsewhere                                       -->
+<!--                                                                      -->
+<xsl:param name="section" select="'1'" />
+<xsl:param name="date" />
+
+<!-- Constants used for case translation -->
+<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
+<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
+
+<!-- ==================================================================== -->
+<!-- <manualpage>                                                         -->
+<!-- Process an entire document into an nroff formatted man page          -->
+<!-- ==================================================================== -->
+<xsl:template match="manualpage">
+<!-- start at the beginning ;-) -->
+<xsl:text>.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>&lf;
+<xsl:text>.\" DO NOT EDIT! Generated from XML source.</xsl:text>&lf;
+<xsl:text>.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>&lf;
+<xsl:text>.de Sh \" Subsection</xsl:text>&lf;
+<xsl:text>.br</xsl:text>&lf;
+<xsl:text>.if t .Sp</xsl:text>&lf;
+<xsl:text>.ne 5</xsl:text>&lf;
+<xsl:text>.PP</xsl:text>&lf;
+<xsl:text>\fB\\$1\fR</xsl:text>&lf;
+<xsl:text>.PP</xsl:text>&lf;
+<xsl:text>..</xsl:text>&lf;
+<xsl:text>.de Sp \" Vertical space (when we can't use .PP)</xsl:text>&lf;
+<xsl:text>.if t .sp .5v</xsl:text>&lf;
+<xsl:text>.if n .sp</xsl:text>&lf;
+<xsl:text>..</xsl:text>&lf;
+<xsl:text>.de Ip \" List item</xsl:text>&lf;
+<xsl:text>.br</xsl:text>&lf;
+<xsl:text>.ie \\n(.$>=3 .ne \\$3</xsl:text>&lf;
+<xsl:text>.el .ne 3</xsl:text>&lf;
+<xsl:text>.IP "\\$1" \\$2</xsl:text>&lf;
+<xsl:text>..</xsl:text>&lf;
+
+<!-- reftitle -->
+<xsl:text>.TH "</xsl:text>
+<!-- standard man page width is 64 chars; 6 chars needed for the two
+    (x) volume numbers, and 2 spaces, leaves 56 -->
+<xsl:value-of select="substring(translate(substring-before(
+    normalize-space(title), ' - '), $lowercase, $uppercase), 1, (56 -
+    string-length(substring-before(normalize-space(title), ' - '))) div 2)" />
+<xsl:text>" </xsl:text>
+
+<!-- section -->
+<xsl:value-of select="$section" />
+<xsl:text> "</xsl:text>
+
+<!-- date; perhaps injected via ant later. -->
+<xsl:value-of select="$date" />
+<xsl:text>" "</xsl:text>
+
+<!-- productname -->
+<xsl:value-of select="'Apache HTTP Server'" />
+<xsl:text>" "</xsl:text>
+
+<!-- title -->
+<xsl:value-of select="substring-before(normalize-space(title), ' - ')" />
+<xsl:text>"</xsl:text>&lf;
+
+<!-- reorder the paragraphs a bit -->
+<xsl:apply-templates select="section[@id='synopsis']" />&lf;
+<xsl:apply-templates select="summary" />&lf;
+<xsl:apply-templates select="section[@id!='synopsis']" />&lf;
+</xsl:template>
+<!-- /manualpage -->
+
+
+<!-- ==================================================================== -->
+<!-- <manualpage><title>                                                  -->
+<!-- Process heading                                                      -->
+<!-- ==================================================================== -->
+<xsl:template match="manualpage/title">
+&lf;
+<xsl:text>.SH NAME</xsl:text>&lf;
+<xsl:variable name="text">
+    <xsl:call-template name="filter.escape">
+        <xsl:with-param name="text" select="normalize-space(.)" />
+    </xsl:call-template>
+</xsl:variable>
+<xsl:value-of select="substring-before($text, ' - ')" />
+<xsl:text> \- </xsl:text>
+<xsl:value-of select="substring-after($text, ' - ')" />
+</xsl:template>
+<!-- /manualpage/title -->
+
+
+<!-- ==================================================================== -->
+<!-- <p>                                                                  -->
+<!-- Process paragraph                                                    -->
+<!-- ==================================================================== -->
+<xsl:template match="p">
+&lf;
+<xsl:text>.PP</xsl:text>&lf;
+
+<xsl:for-each select="node()">
+    <xsl:choose>
+    <xsl:when test="self::text()">
+           <xsl:if test="starts-with(translate(., '&#10;', ' '), ' ') and
+                             preceding-sibling::node()[name(.) != '']">
+               <xsl:text> </xsl:text>
+           </xsl:if>
+        <xsl:variable name="content">
+               <xsl:apply-templates select="." />
+           </xsl:variable>
+           <xsl:value-of select="normalize-space($content)"/>
+           <xsl:if test="translate(substring(., string-length(.), 1), '&#10;',
+                      ' ') = ' ' and following-sibling::node()[name(.) != '']">
+               <xsl:text> </xsl:text>
+           </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+        <xsl:variable name="content">
+            <xsl:apply-templates select="." />
+        </xsl:variable>
+        <xsl:value-of select="normalize-space($content)"/>
+    </xsl:otherwise>
+    </xsl:choose>
+</xsl:for-each>&lf;
+</xsl:template>
+<!-- /p -->
+
+
+<!-- ==================================================================== -->
+<!-- <section>                                                            -->
+<!-- process main section                                                 -->
+<!-- ==================================================================== -->
+<xsl:template match="section">
+&lf;
+<xsl:text>.SH "</xsl:text>
+    <xsl:call-template name="filter.escape">
+        <xsl:with-param name="text"
+            select="normalize-space(translate(title, $lowercase, $uppercase))"/>
+    </xsl:call-template>
+<xsl:text>"</xsl:text>&lf;
+<xsl:apply-templates />
+</xsl:template>
+<xsl:template match="section/title" />
+<!-- /section -->
+
+
+<!-- ==================================================================== -->
+<!-- <summary>                                                            -->
+<!-- process summary section                                              -->
+<!-- ==================================================================== -->
+<xsl:template match="summary">
+&lf;
+<xsl:text>.SH "</xsl:text>
+    <xsl:call-template name="filter.escape">
+        <xsl:with-param name="text" select="normalize-space(translate($messages
+                          /message[@name='summary'], $lowercase, $uppercase))"/>
+    </xsl:call-template>
+<xsl:text>"</xsl:text>&lf;
+<xsl:apply-templates />
+</xsl:template>
+<!-- /summary -->
+
+
+<!-- ==================================================================== -->
+<!-- <var>, <em>                                                          -->
+<!-- show it somewhat special (italic)                                    -->
+<!-- ==================================================================== -->
+<xsl:template match="var|em">
+<xsl:text>\fI</xsl:text>
+    <xsl:apply-templates />
+<xsl:text>\fR</xsl:text>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+<!-- <strong>                                                             -->
+<!-- show it somewhat special (bold)                                      -->
+<!-- ==================================================================== -->
+<xsl:template match="strong">
+<xsl:text>\fB</xsl:text>
+    <xsl:apply-templates />
+<xsl:text>\fR</xsl:text>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+<!-- <directive>                                                          -->
+<!-- ==================================================================== -->
+<xsl:template match="directive">
+<xsl:if test="@type = 'section'">&lt;</xsl:if>
+<xsl:apply-templates />
+<xsl:if test="@type = 'section'">&gt;</xsl:if>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+<!-- <dl>                                                                 -->
+<!-- ==================================================================== -->
+<xsl:template match="dl">
+&lf;
+<xsl:text>.RS</xsl:text>&lf;
+<xsl:apply-templates />&lf;
+<xsl:text>.RE</xsl:text>&lf;
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+<!-- <dt>                                                                 -->
+<!-- ==================================================================== -->
+<xsl:template match="dt">
+&lf;
+<xsl:text>.TP</xsl:text>&lf;
+
+<xsl:variable name="dt-content">
+    <xsl:apply-templates />
+</xsl:variable>
+<xsl:value-of select="normalize-space($dt-content)" />&lf;
+
+<xsl:variable name="dd-content">
+    <xsl:apply-templates
+        select="following-sibling::dd[position() = 1]/node()" />
+</xsl:variable>
+<xsl:value-of select="normalize-space($dd-content)" />
+</xsl:template>
+<!-- /dt -->
+
+
+<!-- ==================================================================== -->
+<!-- <example>                                                            -->
+<!-- ==================================================================== -->
+<xsl:template match="example">
+&lf;
+<xsl:text>.nf</xsl:text>&lf;
+<xsl:apply-templates />&lf;
+<xsl:text>.fi</xsl:text>&lf;
+</xsl:template>
+<!-- /example -->
+
+
+<!-- ==================================================================== -->
+<!-- simple table support ... (exactly 2 columns)                         -->
+<!-- ==================================================================== -->
+<xsl:template match="table/tr">
+<xsl:if test="count(./*) &gt; 2">
+    <xsl:message terminate="yes">
+FATAL: only tables with two (2) columns are supported.
+    </xsl:message>
+</xsl:if>
+
+&lf;
+<xsl:text>.Ip "\(bu \s-1</xsl:text>
+<xsl:variable name="first-content">
+   <xsl:apply-templates select="./*[1]/node()" />
+</xsl:variable>
+<xsl:value-of select="normalize-space($first-content)" />
+
+<xsl:text>\s0 \- </xsl:text>
+<xsl:variable name="second-content">
+   <xsl:apply-templates select="./*[2]/node()" />
+</xsl:variable>
+<xsl:value-of select="normalize-space($second-content)" />&lf;
+</xsl:template>
+<!-- /table/tr -->
+
+
+<!-- ==================================================================== -->
+<!-- text filter                                                          -->
+<!-- ==================================================================== -->
+<xsl:template match="text()">
+<xsl:if test="normalize-space(.) != ''">
+<xsl:call-template name="filter.escape">
+    <xsl:with-param name="text" select="." />
+</xsl:call-template>
+</xsl:if>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+<!-- pass through content                                                 -->
+<!-- ==================================================================== -->
+<xsl:template match="a|code|module|table">
+<xsl:apply-templates />
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+<!-- remove some stuff from the output                                    -->
+<!-- ==================================================================== -->
+<xsl:template match="parentdocument|seealso|dd|td|example/br" />
+
+
+<!-- ==================================================================== -->
+<!-- the rest will be rejected                                            -->
+<!-- ==================================================================== -->
+<xsl:template match="*">
+<xsl:message terminate="yes">
+FATAL: the behaviour of the &lt;<xsl:value-of select="local-name()" />&gt;
+element was not tested. You need to modify
+the XSLT stylesheet in order to get it work.
+</xsl:message>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+<!-- filter.escape                                                        -->
+<!-- escape special characters                                            -->
+<!-- ==================================================================== -->
+<xsl:template name="filter.escape">
+<xsl:param name="text" />
+
+<xsl:choose>
+<xsl:when test="contains($text, '\')">
+    <xsl:call-template name="filter.escape.period">
+        <xsl:with-param name="text" select="substring-before($text, '\')" />
+    </xsl:call-template>
+    <xsl:text>\\</xsl:text>
+    <xsl:call-template name="filter.escape">
+        <xsl:with-param name="text" select="substring-after($text, '\\')" />
+    </xsl:call-template>
+</xsl:when>
+<xsl:otherwise>
+    <xsl:call-template name="filter.escape.period">
+        <xsl:with-param name="text" select="$text" />
+    </xsl:call-template>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+<!-- /filter.escape -->
+
+
+<!-- ==================================================================== -->
+<!-- filter.period                                                        -->
+<!-- accompanying template to filter.escape                               -->
+<!-- ==================================================================== -->
+<xsl:template name="filter.escape.period">
+<xsl:param name="text" />
+
+<xsl:choose>
+<xsl:when test="contains($text, '.')"><!-- period replaced by \&. -->
+    <xsl:value-of select="substring-before($text, '.')" />
+    <xsl:text>\&amp;.</xsl:text>
+    <xsl:call-template name="filter.escape.period">
+        <xsl:with-param name="text" select="substring-after($text, '.')" />
+    </xsl:call-template>
+</xsl:when>
+<xsl:otherwise>
+    <xsl:value-of select="$text" />
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+<!-- /filter.escape.period -->
+
+</xsl:stylesheet>