-.\" $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>
.\"
.\" 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
.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 ,
.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
-/* $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>
*
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
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 },
{ "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 },
};
*offs = pos;
return(ROFF_RERUN);
}
+
+
+/* ARGSUSED */
+static enum rofferr
+roff_line(ROFF_ARGS)
+{
+
+ return(ROFF_IGN);
+}