summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2010-05-24 22:25:58 +0000
committerIngo Schwarze <schwarze@openbsd.org>2010-05-24 22:25:58 +0000
commitf33e9bc8a5b75be1fa9e13e0040f67f086caf19d (patch)
tree07638b7d8f5b1337c589c1200869c1eebfe0cce2
parent4f3f2467baac85e3e184ff13cf9d87c8cad0e577 (diff)
downloadmandoc-f33e9bc8a5b75be1fa9e13e0040f67f086caf19d.tar.gz
mandoc-f33e9bc8a5b75be1fa9e13e0040f67f086caf19d.tar.zst
mandoc-f33e9bc8a5b75be1fa9e13e0040f67f086caf19d.zip
provide stubs to ignore .ds, .rm and .tr,
which occur in the standard pod2man preamble; from OpenBSD; "sounds good" joerg@, "can be checked in" kristaps@
-rw-r--r--roff.722
-rw-r--r--roff.c18
2 files changed, 37 insertions, 3 deletions
diff --git a/roff.7 b/roff.7
index 4c582588..64621c83 100644
--- a/roff.7
+++ b/roff.7
@@ -1,4 +1,4 @@
-.\" $Id: roff.7,v 1.5 2010/05/17 02:38:13 kristaps Exp $
+.\" $Id: roff.7,v 1.6 2010/05/24 22:25:58 schwarze Exp $
.\"
.\" Copyright (c) 2010 Kristaps Dzonsons <kristaps@bsd.lv>
.\"
@@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: May 17 2010 $
+.Dd $Mdocdate: May 24 2010 $
.Dt ROFF 7
.Os
.Sh NAME
@@ -90,6 +90,12 @@ The syntax of this macro is the same as that of
.Sx \&ig ,
except that a leading argument must be specified.
It is ignored, as are its children.
+.Ss \&ds
+Define a string.
+This macro is intended to have two arguments,
+the name of the string to define and its content.
+Currently, it is ignored including its arguments,
+and the number of arguments is not checked.
.Ss \&de1
The syntax of this macro is the same as that of
.Sx \&ig ,
@@ -235,6 +241,18 @@ the subsequent invocation of
.Sx \&if
will first signify the end of comment, then be invoked as a macro.
This behaviour really shouldn't be counted upon.
+.Ss \&rm
+Remove a request, macro or string.
+This macro is intended to have one argument,
+the name of the request, macro or string to be undefined.
+Currently, it is ignored including its arguments,
+and the number of arguments is not checked.
+.Ss \&tr
+Output character translation.
+This macro is intended to have one argument,
+consisting of an even number of characters.
+Currently, it is ignored including its arguments,
+and the number of arguments is not checked.
.Sh COMPATIBILITY
This section documents compatibility between mandoc and other other
troff implementations, at this time limited to GNU troff
diff --git a/roff.c b/roff.c
index 7c8512d9..3057cb8c 100644
--- a/roff.c
+++ b/roff.c
@@ -1,4 +1,4 @@
-/* $Id: roff.c,v 1.82 2010/05/17 02:01:05 kristaps Exp $ */
+/* $Id: roff.c,v 1.83 2010/05/24 22:25:58 schwarze Exp $ */
/*
* Copyright (c) 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -38,10 +38,13 @@ enum rofft {
ROFF_de,
ROFF_dei,
ROFF_de1,
+ ROFF_ds,
ROFF_el,
ROFF_ie,
ROFF_if,
ROFF_ig,
+ ROFF_rm,
+ ROFF_tr,
ROFF_cblock,
ROFF_ccond,
ROFF_MAX
@@ -98,6 +101,7 @@ static enum rofferr roff_ccond(ROFF_ARGS);
static enum rofferr roff_cond(ROFF_ARGS);
static enum rofferr roff_cond_text(ROFF_ARGS);
static enum rofferr roff_cond_sub(ROFF_ARGS);
+static enum rofferr roff_line(ROFF_ARGS);
const struct roffmac roffs[ROFF_MAX] = {
{ "am", roff_block, roff_block_text, roff_block_sub, 0 },
@@ -106,10 +110,13 @@ const struct roffmac roffs[ROFF_MAX] = {
{ "de", roff_block, roff_block_text, roff_block_sub, 0 },
{ "dei", roff_block, roff_block_text, roff_block_sub, 0 },
{ "de1", roff_block, roff_block_text, roff_block_sub, 0 },
+ { "ds", roff_line, NULL, NULL, 0 },
{ "el", roff_cond, roff_cond_text, roff_cond_sub, ROFFMAC_STRUCT },
{ "ie", roff_cond, roff_cond_text, roff_cond_sub, ROFFMAC_STRUCT },
{ "if", roff_cond, roff_cond_text, roff_cond_sub, ROFFMAC_STRUCT },
{ "ig", roff_block, roff_block_text, roff_block_sub, 0 },
+ { "rm", roff_line, NULL, NULL, 0 },
+ { "tr", roff_line, NULL, NULL, 0 },
{ ".", roff_cblock, NULL, NULL, 0 },
{ "\\}", roff_ccond, NULL, NULL, 0 },
};
@@ -703,3 +710,12 @@ roff_cond(ROFF_ARGS)
*offs = pos;
return(ROFF_RERUN);
}
+
+
+/* ARGSUSED */
+static enum rofferr
+roff_line(ROFF_ARGS)
+{
+
+ return(ROFF_IGN);
+}