summaryrefslogtreecommitdiff
path: root/textproc/texi2roff
diff options
context:
space:
mode:
authoragc <agc@pkgsrc.org>2001-05-30 11:45:41 +0000
committeragc <agc@pkgsrc.org>2001-05-30 11:45:41 +0000
commit70f43d63b9a91f9c3ca769a8ec9e9a4fb9472403 (patch)
tree1c05cc4ca92998fb20a5a1605730d182d29fa679 /textproc/texi2roff
parentcf1508202078a5c2fc60e20330ded732c050f1b5 (diff)
downloadpkgsrc-70f43d63b9a91f9c3ca769a8ec9e9a4fb9472403.tar.gz
Initial import of texi2roff-2.0 into the NetBSD packages collection.
Provided in PR 13059 by Ben Collver (collver@linuxfreemail.com) Texi2roff is an unmaintained program program to convert Texinfo to troff. Beverly Erlebacher wrote the program and made the last release in the late 1980's. William Bader produced a patch in 1996 adding numerous commands and other functionality. Alain Knaff added a translation table to generate man pages, and uses it to generate the manuals for mtools. Ben Collver integrated William Bader's and Alain Knaff's changes and made minor cleanups.
Diffstat (limited to 'textproc/texi2roff')
-rw-r--r--textproc/texi2roff/Makefile17
-rw-r--r--textproc/texi2roff/distinfo15
-rw-r--r--textproc/texi2roff/patches/patch-aa186
-rw-r--r--textproc/texi2roff/patches/patch-ab182
-rw-r--r--textproc/texi2roff/patches/patch-ac173
-rw-r--r--textproc/texi2roff/patches/patch-ad408
-rw-r--r--textproc/texi2roff/patches/patch-ae28
-rw-r--r--textproc/texi2roff/patches/patch-af300
-rw-r--r--textproc/texi2roff/patches/patch-ag54
-rw-r--r--textproc/texi2roff/patches/patch-ah13
-rw-r--r--textproc/texi2roff/patches/patch-ai33
-rw-r--r--textproc/texi2roff/patches/patch-aj23
-rw-r--r--textproc/texi2roff/patches/patch-ak149
-rw-r--r--textproc/texi2roff/pkg/DESCR6
-rw-r--r--textproc/texi2roff/pkg/PLIST3
15 files changed, 1590 insertions, 0 deletions
diff --git a/textproc/texi2roff/Makefile b/textproc/texi2roff/Makefile
new file mode 100644
index 00000000000..759b485c3d7
--- /dev/null
+++ b/textproc/texi2roff/Makefile
@@ -0,0 +1,17 @@
+# $NetBSD: Makefile,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+DISTNAME= texi2roff-2.0
+CATEGORIES= textproc
+MASTER_SITES= ${MASTER_SITE_TEX_CTAN:=support/texi2roff/}
+
+MAINTAINER= collver@linuxfreemail.com
+HOMEPAGE= http://texinfo.org/texi2roff/
+COMMENT= Texinfo-to-ROFF direct translator
+
+ALL_TARGET=
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/texi2roff ${PREFIX}/bin
+ ${INSTALL_MAN} ${WRKSRC}/texi2roff.1 ${PREFIX}/man/man1
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/textproc/texi2roff/distinfo b/textproc/texi2roff/distinfo
new file mode 100644
index 00000000000..2c12ad2cfca
--- /dev/null
+++ b/textproc/texi2roff/distinfo
@@ -0,0 +1,15 @@
+$NetBSD: distinfo,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+SHA1 (texi2roff-2.0.tar.gz) = df7f19141042af1fadee192c312b56b738b158f6
+Size (texi2roff-2.0.tar.gz) = 45487 bytes
+SHA1 (patch-aa) = 0c7e5f08fde9539c1bc57fab49438e961c0c35e3
+SHA1 (patch-ab) = 51247760c874f5e90eda28787fb8c3fa265e7d43
+SHA1 (patch-ac) = 00c26fae8707f2246767fb772ec2d54d97f50780
+SHA1 (patch-ad) = f41275060ea862a44b1c8dd2828ea0f2a2b4dbd0
+SHA1 (patch-ae) = e71ab16bbda0c9b9af874c4d8b98fc957f5c249b
+SHA1 (patch-af) = b5e249c70ffce47df4e0835d8b78b74221bb2e17
+SHA1 (patch-ag) = 69433277dba428b693b92c0131baecf48a50ea8f
+SHA1 (patch-ah) = afd0be8af817268282ef019c4a8bd80da1496daa
+SHA1 (patch-ai) = 0fbaee1ec9e1203b911d6d39cad1f15ca7c67863
+SHA1 (patch-aj) = b4109e2b7238f8c07236010fad97780e4eedf126
+SHA1 (patch-ak) = 09759964e9e35c78ce629832ff93246054be54b3
diff --git a/textproc/texi2roff/patches/patch-aa b/textproc/texi2roff/patches/patch-aa
new file mode 100644
index 00000000000..c98c1bee77e
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-aa
@@ -0,0 +1,186 @@
+$NetBSD: patch-aa,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- tableme.h.orig Mon May 28 11:39:14 2001
++++ tableme.h Mon May 28 13:12:49 2001
+@@ -8,18 +8,14 @@
+ *
+ */
+
++#include "table-common.h"
++
+ /*
+ * miscellaneous commands, described in texi2roff.h
+ */
+ struct misccmds mecmds = { ".nr _- 0", "\n.pp\n", "\n.ip\n", "", ""};
+
+-struct tablerecd metable[] = {
+- "@*", "", "\n.br\n", "", "", ESCAPED,
+- "@.", "", "\\&.", "", "", ESCAPED,
+- "@:", "", "", "", "", ESCAPED,
+- "@@", "", "@", "", "", ESCAPED,
+- "@Arrow", "\n", "\\(rh", "\n", "", CHAR,
+- "@TeX{", "}", "TeX", "", "", INPARA,
++struct tablerecd metable[] = { TABLE_COMMON
+ "@appendix", "\n",
+ "\n.if !\\n(_- \\{\\\n.nr _- 1\n.nr $1 0 1\n.af $1 A\\}\n.bp\n.ds __ ",
+ "\n.sh 1 \\*(__ \n.(x \n\\n($1 \\*(__ \n.)x\n","\\fB", HEADING,
+@@ -35,31 +31,11 @@
+ "@appendixsubsubsec","\n", "\n.ds __ ",
+ "\n.sh 4 \\*(__ \n.(x \n\\n($1.\\n($2.\\n($3.\\n($4 \\*(__ \n.)x\n",
+ "\\fB", HEADING,
+- "@arrow", "\n", "\\(->", "\n", "", CHAR,
+- "@asis", "\n", "", "\n", "", PARAGRAPH,
+- "@asis{", "}", "", "", "", INPARA,
+- "@author", "\n", "\n.ce\n", "\n", "", HEADING,
+- "@br", "\n", "\n.br\n.sp\n", "", "", PARAGRAPH,
+ "@bullet{", "}", "\\(bu", "", "", CHAR,
+- "@bye", "\n", "", "\n", "", DISCARD,
+- "@b{", "}", "\\fB", "", "\\fB", INPARA,
+- "@c", "\n", "", "\n", "", DISCARD,
+- "@center", "\n", "\n.ce\n", "\n", "", HEADING,
+- "@center{", "}", "\n.ce\n", "", "", HEADING,
+ "@chapter", "\n", "\n.bp\n.ds __ ",
+ "\n.sh 1 \\*(__ \n.(x \n\\n($1 \\*(__ \n.)x\n","\\fB", HEADING,
+- "@cindex", "\n", "\n.iX \"c ", "\"\n", "", INDEX,
+- "@cite{", "}", "\\fI", "", "\\fI", INPARA,
+- "@code{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+- "@comment", "\n", "", "\n", "", DISCARD,
+ "@contents", "\n", "\n.nr % 0 1\n.af % i\n.bp \\n%+1\n",
+ ".ce\n\\fBTable of Contents\\fR\n.sp 2\n.xp \n","",INPARA,
+- "@copyright{", "}", "\\(co", "", "", CHAR,
+- "@ctrl{", "}", "\\fR\\&\\f(CW^","","\\fR\\&\\f(CW",INPARA,
+- "@dag", "}{", "\\(dg", "", "", CHAR,
+- "@dag{", "}", "\\(dg", "", "", CHAR,
+- "@ddag", "}{", "\\(dd", "", "", CHAR,
+- "@ddag{", "}", "\\(dd", "", "", CHAR,
+ "@defcmd", "@end", "\n.lp\n*\\ Command: ","","", HEADING,
+ "@defcmdx", "\n", "\n.lp\n*\\ Command: ","\n.br\n","",HEADING,
+ "@defconst", "@end", "\n.lp\n*\\ Constant: ","","", HEADING,
+@@ -81,25 +57,17 @@
+ "@defunx", "\n", "\n.lp\n*\\ Function: ","\n.br\n","",HEADING,
+ "@defvar", "@end", "\n.lp\n*\\ Variable: ","","", HEADING,
+ "@defvarx", "\n", "\n.lp\n*\\ Variable: ","\n.br\n","",HEADING,
+- "@dfn{", "}", "\\fI", "", "\\fI", INPARA,
+ "@display", "@end", "\n.(l I\n", "\n.)l\n","", DISPLAY,
+- "@dots{", "}", "\\&...", "", "", INPARA,
+- "@eject", "\n", "\n.bp\n", "", "", PARAGRAPH,
+- "@emph{", "}", "\\fI", "", "\\fI", INPARA,
+ "@end", "\n", "", "\n.sp\n.in\n", "", END,
+ "@enumerate", "@end", "\n.(l L F\n.ba +5\n",
+ "\n.ba -5\n.)l\n","", ITEMIZING,
+- "@equiv{", "}", "\\(==", "", "", CHAR,
+ "@error{", "}", "error->", "", "", CHAR,
+ "@example", "@end", "\n.(l I\n\\fR\\&\\f(CW\n",
+ "\n.)l\n","\\fR\\&\\f(CW", DISPLAY,
+ "@example{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+ "@exdent", "\n", "\n.lp\n", "\n", "", PARAGRAPH,
+- "@expansion{", "}", "\\(->", "", "", CHAR,
+ "@file{", "}", "\\fR\\&\\f(CW\\(if",
+ "\\(is","\\fR\\&\\f(CW", INPARA,
+- "@finalout", "\n", "", "\n", "", DISCARD,
+- "@findex", "\n", "\n.iX \"f ", "\"\n", "", INDEX,
+ "@footnote{", "}", "\n.(f \n", "\n.)f\n","", FOOTNOTE,
+ "@group", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH,
+ "@heading", "\n", "\n.bp\n.ds __ ",
+@@ -113,11 +81,8 @@
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+ "@ichapter", "\n", "\n.bp\n.ds __ ",
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+- "@ifinfo", "@end", "\n", "\n", "", PARAGRAPH,
+- "@iftex", "@end", "", "", "", PARAGRAPH,
+- "@ignore", "@end", "", "", "", DISCARD,
++ "@ignore", "@end", "", "", "", DISCARD,
+ "@include", "\n", "", "", "", INCLUDE,
+- "@inforef{", "}", "See Info file ","", "", PARAGRAPH,
+ "@isection", "\n", "\n.ds __ ",
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+ "@isubsection", "\n", "\n.ds __ ",
+@@ -134,48 +99,25 @@
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+ "@iunnumberedsubsec","\n", "\n.ds __ ",
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+- "@i{", "}", "\\fI", "", "\\fI", INPARA,
+- "@kbd{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+- "@key{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+- "@kindex", "\n", "\n.iX \"k ", "\"\n", "", INDEX,
+ "@majorheading", "\n", "\n.sp 4\n.ds __ ",
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+ "@menu", "@end", "\n.(l I\n\\s8Menu: \n",
+ "\\s0\n.)l\n","", DISPLAY,
+- "@minus{", "}", "\\-", "", "", CHAR,
+- "@need", "\n", "", "\n", "", DISCARD,
+ "@node", "\n", "\n.lp\n\\s8Node:",
+ "\\s0\n.br\n","", PARAGRAPH,
+ "@noindent", "\n", "\n.lp\n", "", "", PARAGRAPH,
+- "@page", "\n", "\n.bp\n", "", "", PARAGRAPH,
+- "@pindex", "\n", "\n.iX \"p ", "\"\n", "", INDEX,
+- "@point{", "}", "*", "", "", CHAR,
+- "@printindex", "\n", "", "\n", "", DISCARD,
+- "@prints{", "}", "-|", "", "", CHAR,
+- "@print{", "}", "-|", "", "", CHAR,
+ "@pxref{", "}", "see section ","", "", PARAGRAPH,
+ "@quotation", "@end", "\n.(q\n.nh\n", "\n.)q\n","", DISPLAY,
+- "@refill", "\n", "", "\n", "", DISCARD,
+- "@ref{", "}", "\\(if", "\\(is","", INPARA,
+- "@result", "\n", "\\(rh", "\n", "", CHAR,
+- "@result{", "}", "\\(rh", "", "", CHAR,
+- "@r{", "}", "\\fR", "", "\\fR", INPARA,
+ "@samp{", "}", "\\fR\\&\\f(CW\\(if", "\\(is",
+ "\\fR\\&\\f(CW",INPARA,
+- "@sc{", "}", "\\fB", "", "\\fB", INPARA,
+ "@section", "\n", "\n.ds __ ",
+ "\n.sh 2 \\*(__ \n.(x \n\\n($1.\\n($2 \\*(__ \n.)x\n",
+ "\\fB", HEADING,
+- "@setchapternewpage","\n", "", "\n", "", DISCARD,
+- "@setfilename", "\n", "", "\n", "", DISCARD,
+ "@settitle", "\n", "\n.ds St ",
+ "\n.oh '\\\\*(St''%'\n.eh '%''\\\\*(St'\n","", HEADING,
+ "@smallbook", "\n", "", "", "", DISCARD,
+ "@smallexample", "@end", "\n.(l I\n\\fR\\&\\f(CW\n",
+ "\n.)l\n", "\\fR\\&\\f(CW",DISPLAY,
+- "@sp", "\n", "\n.sp", "\n", "", PARAGRAPH,
+- "@sp2", "\n", "\n.sp 2", "\n", "", PARAGRAPH,
+- "@strong{", "}", "\\fB", "", "\\fB", INPARA,
+ "@subheading", "\n", "\n.ds __ ",
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+ "@subsection", "\n", "\n.ds __ ",
+@@ -186,24 +128,15 @@
+ "@subsubsection", "\n", "\n.ds __ ",
+ "\n.sh 4 \\*(__ \n.(x \n\\n($1.\\n($2.\\n($3.\\n($4 \\*(__ \n.)x\n",
+ "\\fB", HEADING,
+- "@subtext", "\n", "\n.ce\n", "\n", "", HEADING,
+- "@subtitle", "\n", "\n.ce\n", "\n", "", HEADING,
+ "@summarycontents", "\n", "\n.nr % 0 1\n.af % i\n.bp \\n%+1\n",
+ ".ce\n\\fBTable of Contents\\fR\n.sp 2\n.xp \n","", INPARA,
+- "@syncodeindex", "\n", "", "\n", "", DISCARD,
+- "@synindex", "\n", "", "\n", "", DISCARD,
+- "@t", "\n", "\t", "\n", "", CHAR,
+ "@table", "@end", "\n.(l L F\n.ba +5\n",
+ "\n.ba -5\n.)l\n","", ITEMIZING,
+- "@tex", "@end", "", "", "", DISCARD,
+- "@tindex", "\n", "\n.iX \"t ", "\"\n", "", INDEX,
+- "@title", "\n", "\n.ce\n", "\n", "", HEADING,
+ "@titlefont{", "}", "\n.sz +10\n.ce\n",
+ "\n.sz -10\n","",PARAGRAPH,
+ "@titlepage", "@end", "\n.tp\n", "\n.bp\n","", PARAGRAPH,
+ "@titlespec", "@end", "\n.tp\n.ce \n\\&\\*(St \n",
+ "\n", "", PARAGRAPH,
+- "@t{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+ "@unnumbered", "\n", "\n.bp\n.ds __ ",
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+ "@unnumberedsec", "\n", "\n.ds __ ",
+@@ -212,13 +145,6 @@
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+ "@unnumberedsubsubsec","\n","\n.ds __ ",
+ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
+- "@var{", "}", "\\fI", "", "\\fI", INPARA,
+- "@vfil", "\n", "", "\n", "", DISCARD,
+- "@vindex", "\n", "\n.iX \"v ", "\"\n", "", INDEX,
+- "@vskip", "\n", "", "\n", "", DISCARD,
+- "@w{", "}", "\n\\! ", "\n", "", INPARA,
+- "@xref{", "}", "See section ", "", "", PARAGRAPH,
+- "@{", "", "{", "", "", ESCAPED,
+- "@}", "", "}", "", "", ESCAPED
++ "@vfil", "\n", "", "\n", "", DISCARD
+ };
+
diff --git a/textproc/texi2roff/patches/patch-ab b/textproc/texi2roff/patches/patch-ab
new file mode 100644
index 00000000000..ea6ad214cdb
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-ab
@@ -0,0 +1,182 @@
+$NetBSD: patch-ab,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- tablemm.h.orig Mon May 28 11:39:14 2001
++++ tablemm.h Mon May 28 13:13:17 2001
+@@ -8,6 +8,8 @@
+ *
+ */
+
++#include "table-common.h"
++
+ /*
+ * miscellaneous commands, described in texi2roff.h
+ */
+@@ -16,13 +18,7 @@
+ .ds HF 3 3 3 3 3 3 3\n.nr Hb 7\n.nr Hs 7\n.nr Pt 1", "\n.P 1\n",
+ "\n.P 1\n.ti -\\n(Pin\n", "", "" };
+
+-struct tablerecd mmtable[] = {
+- "@*", "", "\n.br\n", "", "", ESCAPED,
+- "@.", "", "\\&.", "", "", ESCAPED,
+- "@:", "", "", "", "", ESCAPED,
+- "@@", "", "@", "", "", ESCAPED,
+- "@Arrow", "\n", "\\(rh", "\n", "", CHAR,
+- "@TeX{", "}", "TeX", "", "", INPARA,
++struct tablerecd mmtable[] = { TABLE_COMMON
+ "@appendix", "\n",
+ "\n.if !\\n(_- \\{\\\n.nr _- 1\n.nr H1 0 1\n.af H1 A\\}\n.bp\n.H 1 ",
+ "\n.sp .5\n", "\\fB", HEADING,
+@@ -34,30 +30,10 @@
+ "\n.sp .5\n", "\\fB", HEADING,
+ "@appendixsubsubsec","\n", "\n.sp .5\n.H 4 ",
+ "\n.sp .5\n", "\\fB", HEADING,
+- "@arrow", "\n", "\\(->", "\n", "", CHAR,
+- "@asis", "\n", "", "\n", "", PARAGRAPH,
+- "@asis{", "}", "", "", "", INPARA,
+- "@author", "\n", "\n.ce\n", "\n", "", HEADING,
+- "@br", "\n", "\n.br\n.sp\n", "", "", PARAGRAPH,
+ "@bullet{", "}", "\\(bu", "", "", CHAR,
+- "@bye", "\n", "", "\n", "", DISCARD,
+- "@b{", "}", "\\fB", "", "\\fB", INPARA,
+- "@c", "\n", "", "\n", "", DISCARD,
+- "@center", "\n", "\n.ce\n", "\n", "", HEADING,
+- "@center{", "}", "\n.ce\n", "", "", HEADING,
+ "@chapter", "\n", "\n.bp\n.H 1 ",
+ "\n.sp .5\n", "\\fB", HEADING,
+- "@cindex", "\n", "\n.iX \"c ", "\"\n", "", INDEX,
+- "@cite{", "}", "\\fI", "", "\\fI", INPARA,
+- "@code{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+- "@comment", "\n", "", "\n", "", DISCARD,
+ "@contents", "\n", "\n.TC 1 1 5 0\n", "", "", INPARA,
+- "@copyright{", "}", "\\(co", "", "", CHAR,
+- "@ctrl{", "}", "\\fR\\&\\f(CW^","","\\fR\\&\\f(CW",INPARA,
+- "@dag", "}{", "\\(dg", "", "", CHAR,
+- "@dag{", "}", "\\(dg", "", "", CHAR,
+- "@ddag", "}{", "\\(dd", "", "", CHAR,
+- "@ddag{", "}", "\\(dd", "", "", CHAR,
+ "@defcmd", "@end", "\n.P 1\n.ti -\\n(Pin\n*\\ Command: ",
+ "", "", HEADING,
+ "@defcmdx", "\n", "\n.P 1\n.ti -\\n(Pin\n*\\ Command: ",
+@@ -94,25 +70,16 @@
+ "", "", HEADING,
+ "@defvarx", "\n", "\n.P 1\n.ti -\\n(Pin\n*\\ Variable: ",
+ "\n.br\n","", HEADING,
+- "@dfn{", "}", "\\fI", "", "\\fI", INPARA,
+ "@display", "@end", "\n.DS\n", "\n.DE\n","", DISPLAY,
+- "@dots{", "}", "\\&...", "", "", INPARA,
+- "@eject", "\n", "\n.bp\n", "", "", PARAGRAPH,
+- "@emph{", "}", "\\fI", "", "\\fI", INPARA,
+ "@end", "\n", "", "\n.sp\n.in\n", "",END,
+ "@enumerate", "@end", "\n.VL 5 0\n", "\n.LE\n","", ITEMIZING,
+- "@equiv{", "}", "\\(==", "", "", CHAR,
+ "@error{", "}", "error-->", "", "", CHAR,
+ "@example", "@end", "\n.DS 1\n\\fR\\&\\f(CW\n",
+ "\n.DE\n", "\\fR\\&\\f(CW", DISPLAY,
+- "@example{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+ "@exdent", "\n", "\n.P 1\n.ti -\\n(Pin\n",
+ "\n", "", PARAGRAPH,
+- "@expansion{", "}", "\\(->", "", "", CHAR,
+ "@file{", "}", "\\fR\\&\\f(CW\\(if", "\\(is",
+ "\\fR\\&\\f(CW", INPARA,
+- "@finalout", "\n", "", "\n", "", DISCARD,
+- "@findex", "\n", "\n.iX \"f ", "\"\n", "", INDEX,
+ "@footnote{", "}", "\n.FS \n", "\n.FE\n","", FOOTNOTE,
+ "@group", "@end", "\n.DS L F\n", "\n.DE\n","", PARAGRAPH,
+ "@heading", "\n", "\n.sp 2\n.HU ",
+@@ -126,11 +93,8 @@
+ "\n.sp .5\n", "\\fB", HEADING,
+ "@ichapter", "\n", "\n.bp\n.sp .5\n.HU ",
+ "\n.sp .5\n", "\\fB", HEADING,
+- "@ifinfo", "@end", "\n", "\n", "", PARAGRAPH,
+- "@iftex", "@end", "", "", "", PARAGRAPH,
+- "@ignore", "@end", "", "", "", DISCARD,
++ "@ignore", "@end", "", "", "", DISCARD,
+ "@include", "\n", "", "\n", "", INCLUDE,
+- "@inforef{", "}", "See Info file ","", "", PARAGRAPH,
+ "@isection", "\n", "\n.sp .5\n.HU ",
+ "\n.sp .5\n", "\\fB", HEADING,
+ "@isubsection", "\n", "\n.sp .5\n.HU ",
+@@ -146,47 +110,24 @@
+ "\n.sp .5\n", "\\fB", HEADING,
+ "@iunnumberedsubsec","\n", "\n.sp .5\n.HU ",
+ "\n.sp .5\n", "\\fB", HEADING,
+- "@i{", "}", "\\fI", "", "\\fI", INPARA,
+- "@kbd{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+- "@key{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+- "@kindex", "\n", "\n.iX \"k ", "\"\n", "", INDEX,
+ "@majorheading", "\n", "\n.sp 4\n.HU ",
+ "\n.sp .5\n", "\\fB", HEADING,
+ "@menu", "@end", "\n.DS L\n\\s8Menu: \n",
+ "\\s0\n.DE\n", "", DISPLAY,
+- "@minus{", "}", "\\-", "", "", CHAR,
+- "@need", "\n", "", "\n", "", DISCARD,
+ "@node", "\n", "\n.P 1\n.ti -\\n(Pin\n\\s8Node:",
+ "\\s0\n.br\n", "", PARAGRAPH,
+ "@noindent", "\n", "\n.P 1\n.ti -\\n(Pin\n","","", PARAGRAPH,
+- "@page", "\n", "\n.bp\n", "", "", PARAGRAPH,
+- "@pindex", "\n", "\n.iX \"p ", "\"\n", "", INDEX,
+- "@point{", "}", "*", "", "", CHAR,
+- "@printindex", "\n", "", "\n", "", DISCARD,
+- "@prints{", "}", "-|", "", "", CHAR,
+- "@print{", "}", "-|", "", "", CHAR,
+ "@pxref{", "}", "see section ", "", "", PARAGRAPH,
+ "@quotation", "@end", "\n.DS I F 5\n.nh\n", "\n.DE\n","",DISPLAY,
+- "@refill", "\n", "", "\n", "", DISCARD,
+- "@ref{", "}", "\\(if", "\\(is","", INPARA,
+- "@result", "\n", "\\(rh", "\n", "", CHAR,
+- "@result{", "}", "\\(rh", "", "", CHAR,
+- "@r{", "}", "\\fR", "", "\\fR", INPARA,
+ "@samp{", "}", "\\fR\\&\\f(CW\\(if",
+ "\\(is","\\fR\\&\\f(CW", INPARA,
+- "@sc{", "}", "\\fB", "", "\\fB", INPARA,
+ "@section", "\n", "\n.sp .5\n.H 2 ",
+ "\n.sp .5\n", "\\fB", HEADING,
+- "@setchapternewpage","\n", "", "\n", "", DISCARD,
+- "@setfilename", "\n", "", "\n", "", DISCARD,
+ "@settitle", "\n", "\n.ds St ",
+ "\n.OH '\\\\*(St''%'\n.EH '%''\\\\*(St'\n","", HEADING,
+ "@smallbook", "\n", "", "\n", "", DISCARD,
+ "@smallexample", "@end", "\n.DS 1\n\\fR\\&\\f(CW\n",
+ "\n.DE\n","\\fR\\&\\f(CW", DISPLAY,
+- "@sp", "\n", "\n.sp", "\n", "", PARAGRAPH,
+- "@sp2", "\n", "\n.sp 2", "\n", "", PARAGRAPH,
+- "@strong{", "}", "\\fB", "", "\\fB", INPARA,
+ "@subheading", "\n", "\n.sp .5\n.HU ",
+ "\n.sp .5\n", "\\fB", HEADING,
+ "@subsection", "\n", "\n.sp .5\n.H 3 ",
+@@ -195,21 +136,12 @@
+ "\n.sp .5\n", "\\fB", HEADING,
+ "@subsubsection", "\n", "\n.sp .5\n.H 4 ",
+ "\n.sp .5\n", "\\fB", HEADING,
+- "@subtext", "\n", "\n.ce\n", "\n", "", HEADING,
+- "@subtitle", "\n", "\n.ce\n", "\n", "", HEADING,
+ "@summarycontents", "\n", "\n.TC 1 1 5 0 \n", "", "", INPARA,
+- "@syncodeindex", "\n", "", "\n", "", DISCARD,
+- "@synindex", "\n", "", "\n", "", DISCARD,
+- "@t", "\n", "\t", "\n", "", CHAR,
+ "@table", "@end", "\n.VL 5 0\n", "\n.LE\n","", ITEMIZING,
+- "@tex", "@end", "", "", "", DISCARD,
+- "@tindex", "\n", "\n.iX \"t ", "\"\n", "", INDEX,
+- "@title", "\n", "\n.ce\n", "\n", "", HEADING,
+ "@titlefont{", "}", "\n.ps +10\n.ce\n",
+ "\n.ps -10\n", "", PARAGRAPH,
+ "@titlepage", "@end", "\n", "\n.bp\n","", PARAGRAPH,
+ "@titlespec", "@end", "\n.ce \n\\&\\*(St \n","\n","", PARAGRAPH,
+- "@t{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+ "@unnumbered", "\n", "\n.bp\n.sp .5\n.HU ",
+ "\n.sp .5\n", "\\fB", HEADING,
+ "@unnumberedsec", "\n", "\n.sp .5\n.HU ",
+@@ -218,12 +150,5 @@
+ "\n.sp .5\n", "\\fB", HEADING,
+ "@unnumberedsubsubsec","\n","\n.sp .5\n.HU ",
+ "\n.sp .5\n", "\\fB", HEADING,
+- "@var{", "}", "\\fI", "", "\\fI", INPARA,
+- "@vfil", "\n", "", "\n", "", DISCARD,
+- "@vindex", "\n", "\n.iX \"v ", "\"\n", "", INDEX,
+- "@vskip", "\n", "", "\n", "", DISCARD,
+- "@w{", "}", "\n\\! ", "\n", "", INPARA,
+- "@xref{", "}", "See section ", "", "", PARAGRAPH,
+- "@{", "", "{", "", "", ESCAPED,
+- "@}", "", "}", "", "", ESCAPED
++ "@vfil", "\n", "", "\n", "", DISCARD
+ };
diff --git a/textproc/texi2roff/patches/patch-ac b/textproc/texi2roff/patches/patch-ac
new file mode 100644
index 00000000000..de8f9297ed4
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-ac
@@ -0,0 +1,173 @@
+$NetBSD: patch-ac,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- tablems.h.orig Mon May 28 11:39:14 2001
++++ tablems.h Mon May 28 13:13:46 2001
+@@ -15,12 +15,6 @@
+ "\n.PP\n", "\n.IP\n", "\n.RS\n", "\n.RE\n"};
+
+ struct tablerecd mstable[] = {
+- "@*", "", "\n.br\n", "", "", ESCAPED,
+- "@.", "", "\\&.", "", "", ESCAPED,
+- "@:", "", "", "", "", ESCAPED,
+- "@@", "", "@", "", "", ESCAPED,
+- "@Arrow", "\n", "\\(rh", "\n", "", CHAR,
+- "@TeX{", "}", "TeX", "", "", INPARA,
+ "@appendix", "\n",
+ "\n.if !\\n(_- \\{\\\n.nr _- 1\n.nr H1 0 1\n.af H1 A\\}\n.bp\n.ds __ ",
+ "\n.NH 1\n\\*(__ \n.XS \n\\n(H1 \\*(__ \n.XE\n","\\fB", HEADING,
+@@ -36,31 +30,11 @@
+ "@appendixsubsubsec","\n", "\n.ds __ ",
+ "\n.NH 4\n\\*(__ \n.XS \n\\n(H1.\\n(H2.\\n(H3.\\n(H4 \\*(__ \n.XE\n",
+ "\\fB", HEADING,
+- "@arrow", "\n", "\\(->", "\n", "", CHAR,
+- "@asis", "\n", "", "\n", "", PARAGRAPH,
+- "@asis{", "}", "", "", "", INPARA,
+- "@author", "\n", "\n.ce\n", "\n", "", HEADING,
+- "@br", "\n", "\n.br\n.sp\n", "", "", PARAGRAPH,
+ "@bullet{", "}", "\\(bu", "", "", CHAR,
+- "@bye", "\n", "", "\n", "", DISCARD,
+- "@b{", "}", "\\fB", "", "\\fB", INPARA,
+- "@c", "\n", "", "\n", "", DISCARD,
+- "@center", "\n", "\n.ce\n", "\n", "", HEADING,
+- "@center{", "}", "\n.ce\n", "", "", HEADING,
+ "@chapter", "\n", "\n.bp\n.ds __ ",
+ "\n.NH 1\n\\*(__ \n.XS \n\\n(H1 \\*(__ \n.XE\n","\\fB", HEADING,
+- "@cindex", "\n", "\n.iX \"c ", "\"\n", "", INDEX,
+- "@cite{", "}", "\\fI", "", "\\fI", INPARA,
+- "@code{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+- "@comment", "\n", "", "\n", "", DISCARD,
+ "@contents", "\n", "\n.nr % 0\n.af % i\n.bp\n.PX\n",
+ "", "", INPARA,
+- "@copyright{", "}", "\\(co", "", "", CHAR,
+- "@ctrl{", "}", "\\fR\\&\\f(CW^","","\\fR\\&\\f(CW",INPARA,
+- "@dag", "}{", "\\(dg", "", "", CHAR,
+- "@dag{", "}", "\\(dg", "", "", CHAR,
+- "@ddag", "}{", "\\(dd", "", "", CHAR,
+- "@ddag{", "}", "\\(dd", "", "", CHAR,
+ "@defcmd", "@end", "\n.LP\n*\\ Command: ","","", HEADING,
+ "@defcmdx", "\n", "\n.LP\n*\\ Command: ","\n.br\n","",HEADING,
+ "@defconst", "@end", "\n.LP\n*\\ Constant: ","","", HEADING,
+@@ -82,24 +56,15 @@
+ "@defunx", "\n", "\n.LP\n*\\ Function: ","\n.br\n","",HEADING,
+ "@defvar", "@end", "\n.LP\n*\\ Variable: ","","", HEADING,
+ "@defvarx", "\n", "\n.LP\n*\\ Variable: ","\n.br\n","",HEADING,
+- "@dfn{", "}", "\\fI", "", "\\fI", INPARA,
+ "@display", "@end", "\n.ID\n", "\n.DE\n","", DISPLAY,
+- "@dots{", "}", "\\&...", "", "", INPARA,
+- "@eject", "\n", "\n.bp\n", "", "", PARAGRAPH,
+- "@emph{", "}", "\\fI", "", "\\fI", INPARA,
+ "@end", "\n", "", "\n.sp\n.in\n", "", END,
+ "@enumerate", "@end", "\n", "\n", "", ITEMIZING,
+- "@equiv{", "}", "\\(==", "", "", CHAR,
+ "@error{", "}", "error-->", "", "", CHAR,
+ "@example", "@end", "\n.ID\n\\fR\\&\\f(CW\n",
+ "\n.DE\n","\\fR\\&\\f(CW", DISPLAY,
+- "@example{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+ "@exdent", "\n", "\n.LP\n", "\n", "", PARAGRAPH,
+- "@expansion{", "}", "\\(->", "", "", CHAR,
+ "@file{", "}", "\\fR\\&\\f(CW\\(if",
+ "\\(is","\\fR\\&\\f(CW", INPARA,
+- "@finalout", "\n", "", "\n", "", DISCARD,
+- "@findex", "\n", "\n.iX \"f ", "\"\n", "", INDEX,
+ "@footnote{", "}", "\n.FS \n", "\n.FE\n","", FOOTNOTE,
+ "@group", "@end", "\n.KS\n", "\n.KE\n","", PARAGRAPH,
+ "@heading", "\n", "\n.bp\n.ds __ ",
+@@ -113,11 +78,8 @@
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+ "@ichapter", "\n", "\n.bp\n.ds __ ",
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+- "@ifinfo", "@end", "\n", "\n", "", PARAGRAPH,
+- "@iftex", "@end", "", "", "", PARAGRAPH,
+- "@ignore", "@end", "", "", "", DISCARD,
++ "@ignore", "@end", "", "", "", DISCARD,
+ "@include", "\n", "", "\n", "", INCLUDE,
+- "@inforef{", "}", "See Info file ","", "", PARAGRAPH,
+ "@isection", "\n", "\n.ds __ ",
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+ "@isubsection", "\n", "\n.ds __ ",
+@@ -133,48 +95,25 @@
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+ "@iunnumberedsubsec","\n", "\n.ds __ ",
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+- "@i{", "}", "\\fI", "", "\\fI", INPARA,
+- "@kbd{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+- "@key{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+- "@kindex", "\n", "\n.iX \"k ", "\"\n", "", INDEX,
+ "@majorheading", "\n", "\n.sp 4\n.ds __ ",
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+ "@menu", "@end", "\n.LD\n\\s8Menu: \n",
+ "\\s0\n.DE\n", "", DISPLAY,
+- "@minus{", "}", "\\-", "", "", CHAR,
+- "@need", "\n", "", "\n", "", DISCARD,
+ "@node", "\n", "\n.LP\n\\s8Node:",
+ "\\s0\n.br\n", "", PARAGRAPH,
+ "@noindent", "\n", "\n.LP\n", "", "", PARAGRAPH,
+- "@page", "\n", "\n.bp\n", "", "", PARAGRAPH,
+- "@pindex", "\n", "\n.iX \"p ", "\"\n", "", INDEX,
+- "@point{", "}", "*", "", "", CHAR,
+- "@printindex", "\n", "", "\n", "", DISCARD,
+- "@prints{", "}", "-|", "", "", CHAR,
+- "@print{", "}", "-|", "", "", CHAR,
+ "@pxref{", "}", "see section ", "", "", PARAGRAPH,
+ "@quotation", "@end", "\n.QP\n.nh\n", "\n.PP\n","", DISPLAY,
+- "@refill", "\n", "", "\n", "", DISCARD,
+- "@ref{", "}", "\\(if", "\\(is","", INPARA,
+- "@result", "\n", "\\(rh", "\n", "", CHAR,
+- "@result{", "}", "\\(rh", "", "", CHAR,
+- "@r{", "}", "\\fR", "", "\\fR", INPARA,
+ "@samp{", "}", "\\fR\\&\\f(CW\\(if",
+ "\\(is","\\fR\\&\\f(CW", INPARA,
+- "@sc{", "}", "\\fB", "", "\\fB", INPARA,
+ "@section", "\n", "\n.ds __ ",
+ "\n.NH 2\n\\*(__ \n.XS \n\\n(H1.\\n(H2 \\*(__ \n.XE\n",
+ "\\fB", HEADING,
+- "@setchapternewpage","\n", "", "\n", "", DISCARD,
+- "@setfilename", "\n", "", "\n", "", DISCARD,
+ "@settitle", "\n", "\n.ds St ",
+ "\n.OH '\\\\*(St''%'\n.EH '%''\\\\*(St'\n","", HEADING,
+ "@smallbook", "\n", "", "\n", "", DISCARD,
+ "@smallexample", "@end", "\n.ID\n\\fR\\&\\f(CW\n",
+ "\n.DE\n","\\fR\\&\\f(CW", DISPLAY,
+- "@sp", "\n", "\n.sp", "\n", "", PARAGRAPH,
+- "@sp2", "\n", "\n.sp 2", "\n", "", PARAGRAPH,
+- "@strong{", "}", "\\fB", "", "\\fB", INPARA,
+ "@subheading", "\n", "\n.ds __ ",
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+ "@subsection", "\n", "\n.ds __ ",
+@@ -185,22 +124,13 @@
+ "@subsubsection", "\n", "\n.ds __ ",
+ "\n.NH 4\n\\*(__ \n.XS \n\\n(H1.\\n(H2.\\n(H3.\\n(H4 \\*(__ \n.XE\n",
+ "\\fB", HEADING,
+- "@subtext", "\n", "\n.ce\n", "\n", "", HEADING,
+- "@subtitle", "\n", "\n.ce\n", "\n", "", HEADING,
+ "@summarycontents", "\n", "\n.nr % 0\n.af % i\n.bp\n.PX\n",
+ "", "", INPARA,
+- "@syncodeindex", "\n", "", "\n", "", DISCARD,
+- "@synindex", "\n", "", "\n", "", DISCARD,
+- "@t", "\n", "\t", "\n", "", CHAR,
+ "@table", "@end", "\n", "\n", "", ITEMIZING,
+- "@tex", "@end", "", "", "", DISCARD,
+- "@tindex", "\n", "\n.iX \"t ", "\"\n", "", INDEX,
+- "@title", "\n", "\n.ce\n", "\n", "", HEADING,
+ "@titlefont{", "}", "\n.ps +10\n.ce\n",
+ "\n.ps -10\n", "", PARAGRAPH,
+ "@titlepage", "@end", "\n", "\n.bp\n","", PARAGRAPH,
+ "@titlespec", "@end", "\n.ce \n\\&\\*(St \n","\n","", PARAGRAPH,
+- "@t{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
+ "@unnumbered", "\n", "\n.bp\n.ds __ ",
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+ "@unnumberedsec", "\n", "\n.ds __ ",
+@@ -209,12 +139,5 @@
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+ "@unnumberedsubsubsec","\n","\n.ds __ ",
+ "\n.XS \n\\*(__ \n.XE\n.SH \n\\*(__ \n", "\\fB", HEADING,
+- "@var{", "}", "\\fI", "", "\\fI",INPARA,
+- "@vfil", "\n", "", "\n", "", DISCARD,
+- "@vindex", "\n", "\n.iX \"v ", "\"\n", "", INDEX,
+- "@vskip", "\n", "", "\n", "", DISCARD,
+- "@w{", "}", "\n\\! ", "\n", "", INPARA,
+- "@xref{", "}", "See section ", "", "", PARAGRAPH,
+- "@{", "", "{", "", "", ESCAPED,
+- "@}", "", "}", "", "", ESCAPED
++ "@vfil", "\n", "", "\n", "", DISCARD
+ };
diff --git a/textproc/texi2roff/patches/patch-ad b/textproc/texi2roff/patches/patch-ad
new file mode 100644
index 00000000000..bfd398d098c
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-ad
@@ -0,0 +1,408 @@
+$NetBSD: patch-ad,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- table-common.h.orig Mon May 28 13:26:35 2001
++++ table-common.h Mon May 28 13:27:59 2001
+@@ -0,0 +1,403 @@
++#define TABLE_COMMON \
++"\\input", "\n", "", "", "", DISCARD, \
++"@!", "", "", "", "", ESCAPED, \
++"@'", "", "'", "", "", ESCAPED, \
++"@?", "", "", "", "", ESCAPED, \
++"@|", "", "", "", "", ESCAPED, \
++"@ ", "", " ", "", "", ESCAPED, \
++"@\n", "", "\n", "", "", ESCAPED, \
++"@AA{", "}", "AA", "", "", CHAR, \
++"@AE{", "}", "\\(AE", "", "", CHAR, \
++"@H{", "}", "", "", "\\*:", INPARA, \
++"@HEADINGSon", "\n", "", "", "", DISCARD, \
++"@L{", "}", "L", "", "", CHAR, \
++"@O{", "}", "O/", "", "", CHAR, \
++"@OE{", "}", "\\(OE", "", "", CHAR, \
++"@SS{", "}", "SS", "", "", CHAR, \
++"@`", "", "`", "", "", ESCAPED, \
++"@aa{", "}", "aa", "", "", CHAR, \
++"@ae{", "}", "\\(ae", "", "", CHAR, \
++"@author{", "}", "\n.ce\n", "\n", "", HEADING, \
++"@begingroup", "\n", "\n.(b\n", "\n", "", PARAGRAPH, \
++"@chapheading", \
++ "\n", \
++ "\n.sp 6\n.ds __ ", \
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n", \
++ "\\fB", \
++ HEADING, \
++"@clear", "\n", "", "", "", CLEAR, \
++"@cmindex", "\n", "\n.iX \"c ", "\"\n", "", INDEX, \
++"@defcodeindex","\n", "", "", "", DISCARDLINE, \
++/* @defcodeindex au */ \
++/* creates an '@auindex' command that indexes the line in code font */ \
++"@defcv", \
++ "@end", \
++ "\n.lp\n*\\ Class Variable: ", \
++ "", \
++ "", \
++ HEADING, \
++"@defcvx", \
++ "\n", \
++ "\n.lp\n*\\ Class Variable: ", \
++ "\n.br\n", \
++ "", \
++ HEADING, \
++"@defindex", "\n", "", "", "", DISCARDLINE, \
++/* @defindex au */ \
++/* creates an '@auindex' command that indexes the line in roman font */ \
++"@defivar", \
++ "@end", \
++ "\n.lp\n*\\ Instance Variable: ", \
++ "", \
++ "", \
++ HEADING, \
++"@defivarx", \
++ "\n", \
++ "\n.lp\n*\\ Instance Variable: ", \
++ "\n.br\n", \
++ "", \
++ HEADING, \
++"@defop", \
++ "@end", \
++ "\n.lp\n*\\ Class Operation on ", \
++ "", \
++ "", \
++ HEADING, \
++"@defopx", \
++ "\n", \
++ "\n.lp\n*\\ Class Operation on ", \
++ "\n.br\n", \
++ "", \
++ HEADING, \
++"@deftp", "@end", "\n.lp\n*\\ Type: ","","", HEADING, \
++"@deftpx", "\n", "\n.lp\n*\\ Type: ","\n.br\n","",HEADING, \
++"@deftypefn", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@deftypefnx", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@deftypefun", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@deftypefunx", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@deftypemethod","@end","\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@deftypemethodx","@end","\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@deftypevar", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@deftypevarx", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@deftypevr", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@deftypevrx", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH, \
++"@defvar{", "}", "\n.lp\n*\\ Variable: ","","", HEADING, \
++"@defvr", "@end", "\n.lp\n*\\ Variable: ","","", HEADING, \
++"@defvrx", "\n", "\n.lp\n*\\ Variable: ","\n.br\n","",HEADING, \
++"@detailmenu", \
++ "@end", \
++ "\n.(l I\n\\s8Detail Menu: \n", \
++ "\\s0\n.)l\n", \
++ "", \
++ DISPLAY, \
++"@dircategory", "\n", "", "", "", DISCARDLINE, \
++"@direntry", "@end", "", "", "", DISCARD, \
++"@dotaccent{", "}", "", "", "\\*o", INPARA, \
++"@dotless{", "}", "", "", "", INPARA, \
++"@down", "\n", "", "\n", "", DISCARD, \
++"@dmn{", "}", "", "", "", INPARA, \
++"@email{", "}", "\\fB", "", "\\fB", INPARA, \
++"@enddots{", "}", "....", "", "", CHAR, \
++"@endgroup", "\n", "", "\n.)b\n","", PARAGRAPH, \
++"@exclamdown{", "}", "!", "", "", CHAR, \
++"@finalout", "\n", "", "", "", DISCARD, \
++"@flindex", "\n", "\n.iX \"c ", "\"\n", "", INDEX, \
++"@flushleft", "@end", "\n.br\n.ad l", "\n.br\n.ad b\n","",HEADING, \
++"@flushright", "@end", "\n.br\n.ad r", "\n.br\n.ad b\n","",HEADING, \
++"@footnotestyle","\n", "", "", "", DISCARD, \
++"@format", "@end", "\n.(l I\n", "\n.)l\n","", DISPLAY, \
++"@ftable", \
++ "@end", \
++ "\n.(l L F\n.ba +5\n", \
++ "\n.ba -5\n.)l\n", \
++ "", \
++ ITEMIZING, \
++"@hrule", "\n", "", "\n", "", DISCARD, \
++"@iappendixsection", \
++ "\n", \
++ "\n.ds __ ", \
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n", \
++ "\\fB", \
++ HEADING, \
++"@iappendixsubsection", \
++ "\n", \
++ "\n.ds __ ", \
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n", \
++ "\\fB", \
++ HEADING, \
++"@iappendixsubsubsec", \
++ "\n", \
++ "\n.ds __ ", \
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n", \
++ "\\fB", \
++ HEADING, \
++"@ifclear", "@end", "", "", "", IFCLEAR, \
++"@ifset", "@end", "", "", "", IFSET, \
++"@input", "\n", "", "", "", INCLUDE, \
++"@iunnumberedsubsubsec", \
++ "\n", \
++ "\n.ds __ ", \
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n", \
++ "\\fB", \
++ HEADING, \
++"@l{", \
++ "}", \
++ "l", \
++ "", \
++ "", \
++ CHAR, \
++"@lisp", \
++ "@end", \
++ "\\fR\\&\\f(CW", \
++ "", \
++ "\\fR\\&\\f(CW", \
++ INPARA, \
++"@lowersections", \
++ "\n", \
++ "", \
++ "\n", \
++ "", \
++ DISCARD, \
++"@math{", \
++ "}", \
++ "\\fR\\&\\f(CW", \
++ "", \
++ "\\fR\\&\\f(CW", \
++ INPARA, \
++"@multitable", \
++ "@end", \
++ "\n.(l L F\n.ba +5\n", \
++ "\n.ba -5\n.)l\n", \
++ "", \
++ ITEMIZING, \
++"@nwnode", \
++ "\n", \
++ "\n.lp\n\\s8Node:", \
++ "\\s0\n.br\n", \
++ "", \
++ PARAGRAPH, \
++"@o{", "}", "o/", "", "", CHAR, \
++"@obeylines", "\n", "", "\n", "", DISCARD, \
++"@oe{", "}", "\\(oe", "", "", CHAR, \
++"@opindex", "\n", "\n.iX \"c ", "\"\n", "", INDEX, \
++"@overfullrule","\n", "", "\n", "", DISCARD, \
++"@paragraphindent","\n","", "", "", DISCARD, \
++"@pounds{", "}", "#", "", "", CHAR, \
++"@quad", "\n", "", "\n", "", DISCARD, \
++"@questiondown{","}", "?", "", "", CHAR, \
++"@quote{", "}", "\"", "\"", "", INPARA, \
++"@raisesections","\n", "", "\n", "", DISCARD, \
++"@ringaccent{", "}", "", "", "\\*o", INPARA, \
++"@set", "\n", "", "", "", SET, \
++"@setchapternewstyle","\n","", "\n", "", DISCARD, \
++"@setchapterstyle","\n","", "\n", "", DISCARD, \
++"@shortcontents", \
++ "\n", \
++ "\n.nr % 0 1\n.af % i\n.bp \\n%+1\n", \
++ ".ce\n\\fBTable of Contents\\fR\n.sp 2\n.xp \n", \
++ "", \
++ INPARA, \
++"@shorttitlepage","\n","", "", "", DISCARD, \
++"@smalllisp", \
++ "@end", \
++ "\\fR\\&\\f(CW", \
++ "", \
++ "\\fR\\&\\f(CW", \
++ INPARA, \
++"@ss{", "}", "ss", "", "", CHAR, \
++"@subtitle{", "}", "\n.ce\n", "\n", "", HEADING, \
++"@tab", "", "\t", "", "", ESCAPED, \
++"@tex{", "}", "", "", "", DISCARD, \
++"@tieaccent{", "}", "", "-", "", INPARA, \
++"@today{", "}", "-DATE-", "", "", PARAGRAPH, \
++"@top", \
++ "\n", \
++ "\n.lp\n\\s8Top:", \
++ "\\s0\n.br\n", \
++ "", \
++ PARAGRAPH, \
++"@title{", "}", "\n.ce\n", "\n", "", HEADING, \
++"@tt{", \
++ "}", \
++ "\\fR\\&\\f(CW", \
++ "", \
++ "\\fR\\&\\f(CW", \
++ INPARA, \
++"@ubaraccent{", "}", "", "-", "", INPARA, \
++"@udotaccent{", "}", "", ".", "", INPARA, \
++"@up", "\n", "", "\n", "", DISCARD, \
++"@url{", "}", "\\fB", "", "\\fB", INPARA, \
++"@u{", "}", "", "-", "", INPARA, \
++"@value{", "}", "", "", "", VALUE, \
++"@vtable", \
++ "@end", \
++ "\n.(l L F\n.ba +5\n", \
++ "\n.ba -5\n.)l\n", \
++ "", \
++ ITEMIZING, \
++"@v{", "}", "", "\\*v", "", INPARA, \
++"@widen{", "}", "", "\n", "", DISCARD, \
++"@\"a", "", "", "a\\*:","", ESCAPED, \
++"@\"e", "", "", "e\\*:","", ESCAPED, \
++"@\"i", "", "", "i\\*:","", ESCAPED, \
++"@\"o", "", "", "o\\*:","", ESCAPED, \
++"@\"u", "", "", "u\\*:","", ESCAPED, \
++"@\"y", "", "", "y\\*:","", ESCAPED, \
++"@\"A", "", "", "A\\*:","", ESCAPED, \
++"@\"E", "", "", "E\\*:","", ESCAPED, \
++"@\"I", "", "", "I\\*:","", ESCAPED, \
++"@\"O", "", "", "O\\*:","", ESCAPED, \
++"@\"U", "", "", "U\\*:","", ESCAPED, \
++"@\"Y", "", "", "Y\\*:","", ESCAPED, \
++"@'a", "", "", "a\\*'","", ESCAPED, \
++"@'e", "", "", "e\\*'","", ESCAPED, \
++"@'i", "", "", "i\\*'","", ESCAPED, \
++"@'o", "", "", "o\\*'","", ESCAPED, \
++"@'u", "", "", "u\\*'","", ESCAPED, \
++"@'y", "", "", "y\\*'","", ESCAPED, \
++"@'A", "", "", "A\\*'","", ESCAPED, \
++"@'E", "", "", "E\\*'","", ESCAPED, \
++"@'I", "", "", "I\\*'","", ESCAPED, \
++"@'O", "", "", "O\\*'","", ESCAPED, \
++"@'U", "", "", "U\\*'","", ESCAPED, \
++"@'Y", "", "", "Y\\*'","", ESCAPED, \
++"@`a", "", "", "a\\*`","", ESCAPED, \
++"@`e", "", "", "e\\*`","", ESCAPED, \
++"@`i", "", "", "i\\*`","", ESCAPED, \
++"@`o", "", "", "o\\*`","", ESCAPED, \
++"@`u", "", "", "u\\*`","", ESCAPED, \
++"@`y", "", "", "y\\*`","", ESCAPED, \
++"@`A", "", "", "A\\*`","", ESCAPED, \
++"@`E", "", "", "E\\*`","", ESCAPED, \
++"@`I", "", "", "I\\*`","", ESCAPED, \
++"@`O", "", "", "O\\*`","", ESCAPED, \
++"@`U", "", "", "U\\*`","", ESCAPED, \
++"@`Y", "", "", "Y\\*`","", ESCAPED, \
++"@=o", "", "=o", "", "", ESCAPED, \
++"@^a", "", "", "a\\*^","", ESCAPED, \
++"@^e", "", "", "e\\*^","", ESCAPED, \
++"@^i", "", "", "i\\*^","", ESCAPED, \
++"@^o", "", "", "o\\*^","", ESCAPED, \
++"@^u", "", "", "u\\*^","", ESCAPED, \
++"@^y", "", "", "y\\*^","", ESCAPED, \
++"@^A", "", "", "A\\*^","", ESCAPED, \
++"@^E", "", "", "E\\*^","", ESCAPED, \
++"@^I", "", "", "I\\*^","", ESCAPED, \
++"@^O", "", "", "O\\*^","", ESCAPED, \
++"@^U", "", "", "U\\*^","", ESCAPED, \
++"@^Y", "", "", "Y\\*^","", ESCAPED, \
++"@~N", "", "", "N\\*~","", ESCAPED, \
++"@~n", "", "", "n\\*~","", ESCAPED, \
++"@~a", "", "", "a\\*~","", ESCAPED, \
++"@~e", "", "", "e\\*~","", ESCAPED, \
++"@~i", "", "", "i\\*~","", ESCAPED, \
++"@~o", "", "", "o\\*~","", ESCAPED, \
++"@~u", "", "", "u\\*~","", ESCAPED, \
++"@~y", "", "", "y\\*~","", ESCAPED, \
++"@~A", "", "", "A\\*~","", ESCAPED, \
++"@~E", "", "", "E\\*~","", ESCAPED, \
++"@~I", "", "", "I\\*~","", ESCAPED, \
++"@~O", "", "", "O\\*~","", ESCAPED, \
++"@~U", "", "", "U\\*~","", ESCAPED, \
++"@~Y", "", "", "Y\\*~","", ESCAPED, \
++"@,{", "}", "", "\\*,", "", INPARA, \
++\
++\
++"@*", "", "\n.br\n", "", "", ESCAPED, \
++"@.", "", "\\&.", "", "", ESCAPED, \
++"@:", "", "", "", "", ESCAPED, \
++"@@", "", "@", "", "", ESCAPED, \
++"@Arrow", "\n", "\\(rh", "\n", "", CHAR, \
++"@TeX{", "}", "TeX", "", "", INPARA, \
++"@arrow", "\n", "\\(->", "\n", "", CHAR, \
++"@asis", "\n", "", "\n", "", PARAGRAPH, \
++"@asis{", "}", "", "", "", INPARA, \
++"@author", "\n", "\n.ce\n", "\n", "", HEADING, \
++"@br", "\n", "\n.br\n.sp\n", "", "", PARAGRAPH, \
++"@bye", "\n", "", "\n", "", DISCARD, \
++"@b{", "}", "\\fB", "", "\\fB", INPARA, \
++"@c", "\n", "", "\n", "", DISCARD, \
++"@center", "\n", "\n.ce\n", "\n", "", HEADING, \
++"@center{", "}", "\n.ce\n", "", "", HEADING, \
++"@cindex", "\n", "\n.iX \"c ", "\"\n", "", INDEX, \
++"@cite{", "}", "\\fI", "", "\\fI", INPARA, \
++"@code{", \
++ "}", \
++ "\\fR\\&\\f(CW", \
++ "", \
++ "\\fR\\&\\f(CW", \
++ INPARA, \
++"@comment", "\n", "", "\n", "", DISCARD, \
++"@copyright{", "}", "\\(co", "", "", CHAR, \
++"@ctrl{", \
++ "}", \
++ "\\fR\\&\\f(CW^", \
++ "", \
++ "\\fR\\&\\f(CW", \
++ INPARA, \
++"@dag", "}{", "\\(dg", "", "", CHAR, \
++"@dag{", "}", "\\(dg", "", "", CHAR, \
++"@ddag", "}{", "\\(dd", "", "", CHAR, \
++"@ddag{", "}", "\\(dd", "", "", CHAR, \
++"@dfn{", "}", "\\fI", "", "\\fI", INPARA, \
++"@dots{", "}", "\\&...", "", "", INPARA, \
++"@eject", "\n", "\n.bp\n", "", "", PARAGRAPH, \
++"@emph{", "}", "\\fI", "", "\\fI", INPARA, \
++"@equiv{", "}", "\\(==", "", "", CHAR, \
++"@example{", \
++ "}", \
++ "\\fR\\&\\f(CW", \
++ "", \
++ "\\fR\\&\\f(CW", \
++ INPARA, \
++"@expansion{", "}", "\\(->", "", "", CHAR, \
++"@finalout", "\n", "", "\n", "", DISCARD, \
++"@findex", "\n", "\n.iX \"f ", "\"\n", "", INDEX, \
++"@ifinfo", "@end", "\n", "\n", "", PARAGRAPH, \
++"@iftex", "@end", "", "", "", PARAGRAPH, \
++"@inforef{", "}", "See Info file ","", "", PARAGRAPH, \
++"@i{", "}", "\\fI", "", "\\fI", INPARA, \
++"@kbd{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA, \
++"@key{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA, \
++"@kindex", "\n", "\n.iX \"k ", "\"\n", "", INDEX, \
++"@minus{", "}", "\\-", "", "", CHAR, \
++"@need", "\n", "", "\n", "", DISCARD, \
++"@page", "\n", "\n.bp\n", "", "", PARAGRAPH, \
++"@pindex", "\n", "\n.iX \"p ", "\"\n", "", INDEX, \
++"@point{", "}", "*", "", "", CHAR, \
++"@printindex", "\n", "", "\n", "", DISCARD, \
++"@prints{", "}", "-|", "", "", CHAR, \
++"@print{", "}", "-|", "", "", CHAR, \
++"@refill", "\n", "", "\n", "", DISCARD, \
++"@ref{", "}", "\\(if", "\\(is","", INPARA, \
++"@result", "\n", "\\(rh", "\n", "", CHAR, \
++"@result{", "}", "\\(rh", "", "", CHAR, \
++"@r{", "}", "\\fR", "", "\\fR", INPARA, \
++"@sc{", "}", "\\fB", "", "\\fB", INPARA, \
++"@setchapternewpage","\n","", "\n", "", DISCARD, \
++"@setfilename", "\n", "", "\n", "", DISCARD, \
++"@settitle", \
++ "\n", \
++ "\n.ds St ", \
++ "\n.oh '\\\\*(St''%'\n.eh '%''\\\\*(St'\n", \
++ "", \
++ HEADING, \
++"@sp", "\n", "\n.sp", "\n", "", PARAGRAPH, \
++"@sp2", "\n", "\n.sp 2", "\n", "", PARAGRAPH, \
++"@strong{", "}", "\\fB", "", "\\fB", INPARA, \
++"@subtext", "\n", "\n.ce\n", "\n", "", HEADING, \
++"@subtitle", "\n", "\n.ce\n", "\n", "", HEADING, \
++"@syncodeindex","\n", "", "\n", "", DISCARD, \
++"@synindex", "\n", "", "\n", "", DISCARD, \
++"@t", "\n", "\t", "\n", "", CHAR, \
++"@tex", "@end", "", "", "", DISCARD, \
++"@tindex", "\n", "\n.iX \"t ", "\"\n", "", INDEX, \
++"@title", "\n", "\n.ce\n", "\n", "", HEADING, \
++"@t{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA, \
++"@var{", "}", "\\fI", "", "\\fI", INPARA, \
++"@vindex", "\n", "\n.iX \"v ", "\"\n", "", INDEX, \
++"@vskip", "\n", "", "\n", "", DISCARD, \
++"@w{", "}", "\n\\! ", "\n", "", INPARA, \
++"@xref{", "}", "See section ", "", "", PARAGRAPH, \
++"@{", "", "{", "", "", ESCAPED, \
++"@}", "", "}", "", "", ESCAPED,
diff --git a/textproc/texi2roff/patches/patch-ae b/textproc/texi2roff/patches/patch-ae
new file mode 100644
index 00000000000..dedbbad4859
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-ae
@@ -0,0 +1,28 @@
+$NetBSD: patch-ae,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- texi2roff.h.orig Mon May 28 12:15:12 2001
++++ texi2roff.h Mon May 28 12:54:22 2001
+@@ -13,6 +13,7 @@
+ #define MS 1
+ #define ME 2
+ #define MM 3
++#define MANDOC 4
+
+ /* useful confusion-reducing things */
+ #define STREQ(s,t) (*(s)==*(t) && strcmp(s, t)==0)
+@@ -62,7 +63,14 @@
+ #define DISPLAY 10 /* text block of the kind called a 'display' */
+ #define INDEX 11 /* index entry */
+ #define INCLUDE 12 /* include file command */
+-
++
++#define IFSET 13 /* test if a variable is set */
++#define IFCLEAR 14 /* test if a variable is not set */
++#define SET 15 /* set a variable */
++#define CLEAR 16 /* clear a variable */
++#define VALUE 17 /* lookup the value of a variable */
++#define DISCARDLINE 18 /* not supported -- discard to end of line */
++
+ /* portability */
+ #ifdef BSD
+ #include <strings.h>
diff --git a/textproc/texi2roff/patches/patch-af b/textproc/texi2roff/patches/patch-af
new file mode 100644
index 00000000000..6f875caf021
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-af
@@ -0,0 +1,300 @@
+$NetBSD: patch-af,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- translate.c.orig Mon May 28 11:39:14 2001
++++ translate.c Mon May 28 12:18:03 2001
+@@ -11,6 +11,10 @@
+ #include <stdio.h>
+ #include "texi2roff.h"
+
++#ifndef TDEBUG
++#define TDEBUG 0
++#endif
++
+ extern int transparent; /* -t flag: dont discard things */
+ int displaylevel = 0; /* nesting level of 'display' text */
+ int inmacroarg = NO; /* protect roff macro args flag */
+@@ -78,6 +82,9 @@
+
+ while (fgets(input, MAXLINELEN, in) != NULL) {
+ ++linecount;
++ if (linecount == 1 && strncmp(input, "\\input texinfo", 14) == 0) {
++ continue;
++ }
+ inp = input;
+ *output = 0;
+ if (*inp == '.') /* protect leading '.' in input */
+@@ -118,13 +125,99 @@
+ }
+
+ /*
++ * handle variables
++ */
++
++static struct vartag {
++ char var_name[MAXLINELEN];
++ char var_value[MAXLINELEN + 20]; /* room for no value for ... */
++ int var_is_set;
++ struct vartag *var_next;
++} *first_var = NULL;
++
++/*
++ * lookup a variable and return a pointer to it.
++ * creates the variable if needed.
++ */
++
++static struct vartag *
++lookup_var(name)
++char *name;
++{
++ struct vartag *v;
++
++ for (v = first_var; v; v = v->var_next) {
++ if (strcmp(v->var_name, name) == 0) {
++ return(v);
++ }
++ }
++
++ v = (struct vartag *) malloc(sizeof(struct vartag));
++ if (!v) {
++ errormsg("unable to save variable: ", name);
++ } else {
++ strncpy(v->var_name, name, MAXLINELEN);
++ v->var_name[MAXLINELEN-1] = '\0';
++ v->var_value[0] = '\0';
++ v->var_is_set = NO;
++ v->var_next = first_var;
++ first_var = v;
++ }
++ return(v);
++}
++
++static void
++set_var(name, is_set, value)
++char *name, *value;
++int is_set;
++{
++ struct vartag *v;
++
++ v = lookup_var(name);
++ if (v) {
++ v->var_is_set = is_set;
++ if (is_set) {
++ strncpy(v->var_value, value, MAXLINELEN-1);
++ v->var_value[MAXLINELEN-1] = '\0';
++ } else {
++ v->var_value[0] = '\0';
++ }
++ }
++}
++
++static int
++var_is_set(name)
++char *name;
++{
++ struct vartag *v;
++ v = lookup_var(name);
++ return(v != (struct vartag *)NULL && v->var_is_set);
++}
++
++static char *
++get_var(name)
++char *name;
++{
++ struct vartag *v;
++ v = lookup_var(name);
++ if (!v)
++ return("");
++ if (!v->var_is_set)
++ sprintf(v->var_value, "{No value for \"%s\"}", v->var_name);
++ return(v->var_value);
++}
++
++/*
+ * PUSH - macro to push pointer to table entry onto command stack
+ * and current font onto font stack
+ */
+
+-#define MAXDEPTH 20
++#define MAXDEPTH 100
+
+ #define PUSH(tptr) \
++ if (tptr->texend[0] == '\0') { \
++ errormsg("error - table has empty end for cmd ", tptr->texstart);\
++ } \
+ if (++stackptr == MAXDEPTH) { \
+ errormsg("stack overflow - commands nested too deeply", ""); \
+ return NULL; \
+@@ -160,6 +253,13 @@
+ FILE *fp; /* for @include files */
+ extern int process(); /* for @include files */
+
++#if TDEBUG
++ fprintf(stderr,
++ "interp, ln %d token '%s', stackptr %d fontptr %d discard %d level %d inmacarg %d\n",
++ linecount, token, stackptr, fontptr,
++ discarding, discardlevel, inmacroarg);
++#endif
++
+ if (init == NO) {
+ (void) strcpy(fontstack[0], defaultfont);
+ (void) strcpy(curfont, defaultfont);
+@@ -169,12 +269,17 @@
+ s = inp;
+ if (stackptr > 0 && STREQ(token, stack[stackptr]->texend)) {
+ /* have fetched closing token of current Texinfo command */
++#if TDEBUG
++ fprintf(stderr, "interp, found end, stackptr %d\n", stackptr);
++#endif
+ if (STREQ(token, "@end")) {/* WARNING! only works from translate() */
+ s = gettoken(eatwhitespace(s),tempstr);
+- if (! STREQ(&(stack[stackptr]->texstart[1]), tempstr)
+- && !discarding) {
++ if (! STREQ(&(stack[stackptr]->texstart[1]), tempstr) ) {
+ errormsg("unexpected @end found for Texinfo cmd @", tempstr);
+- return s;
++ errormsg("expected @end for Texinfo cmd ", stack[stackptr]->texstart);
++ if (!discarding) {
++ return s;
++ }
+ }
+ }
+ if (!discarding)
+@@ -209,6 +314,9 @@
+ return ""; /* flush rest of line if any */
+ }
+ } else if (*token != '@') { /* ordinary piece of text */
++#if TDEBUG
++ fprintf(stderr, "interp, normal text\n");
++#endif
+ if (!discarding)
+ (void) strcat(outstring, token);
+ if (*token == '\n') {
+@@ -220,10 +328,23 @@
+ if (!discarding)
+ errormsg("unrecognized Texinfo command ", token);
+ } else {
++#if TDEBUG
++ fprintf(stderr, "interp, command, type %d\n", tptr->type);
++#endif
+ switch (tptr->type) {
+ case ESCAPED:
+- if (!discarding)
+- (void) strcat(outstring, tptr->trfstart);
++ if (tptr->texend[0] != '\0') {
++ errormsg("error - table has non-empty end for cmd ",
++ tptr->texstart);
++ }
++ if (!discarding) {
++ if (tptr->trfstart[0] != '\0') {
++ (void) strcat(outstring, tptr->trfstart);
++ }
++ if (tptr->trfend[0] != '\0') {
++ (void) strcat(outstring, tptr->trfend);
++ }
++ }
+ break;
+ case DISPLAY:
+ ++displaylevel;
+@@ -249,6 +370,16 @@
+ if (!discarding && !transparent) {
+ discarding = YES;
+ discardlevel = stackptr;
++ if (tptr->texend[0] == '\n') {
++ while (*s != '\0' && *s != '\n')
++ s++;
++ }
++ }
++ break;
++ case DISCARDLINE:
++ if (!transparent) {
++ while (*s != '\0' && *s != '\n')
++ s++;
+ }
+ break;
+ case ITEMIZING:
+@@ -277,8 +408,7 @@
+ break;
+ case END:
+ s = gettoken(eatwhitespace(s),tempstr);
+- if (!discarding)
+- errormsg("unexpected @end found for Texinfo cmd @", tempstr);
++ errormsg("unexpected @end found for Texinfo cmd @", tempstr);
+ break;
+ case FOOTNOTE:
+ PUSH(tptr);
+@@ -297,11 +427,56 @@
+ for (cp = tempstr; strchr(" \t\n",*s) == NULL; *cp++ = *s++)
+ ;
+ *cp = '\0';
+- if (!discarding && ( fp = fopen(tempstr, "r")) == NULL)
+- errormsg("can't open included file ", tempstr);
+- else {
+- (void) process(fp, tempstr);
+- (void) fclose(fp);
++ if (!discarding) {
++ if ( (fp = fopen(tempstr, "r")) == NULL)
++ errormsg("can't open included file ", tempstr);
++ else {
++ (void) process(fp, tempstr);
++ (void) fclose(fp);
++ }
++ }
++ break;
++ case IFSET:
++ case IFCLEAR:
++ PUSH(tptr);
++ s = eatwhitespace(s);
++ for (cp = tempstr; strchr(" \t\n",*s) == NULL; *cp++ = *s++)
++ ;
++ *cp = '\0';
++ if (!discarding) {
++ discarding = var_is_set(tempstr);
++ if (tptr->type == IFSET) discarding = !discarding;
++ if (discarding) discardlevel = stackptr;
++ }
++ break;
++ case SET:
++ case CLEAR:
++ s = eatwhitespace(s);
++ for (cp = itemtag; strchr(" \t\n",*s) == NULL; *cp++ = *s++)
++ ;
++ *cp = '\0';
++ if (tptr->type == CLEAR) {
++ if (!discarding) {
++ set_var(itemtag, NO, "");
++ }
++ } else {
++ s = eatwhitespace(s);
++ for (cp = s; *s != '\0' && *s != '\n'; s++)
++ ;
++ *s = '\0';
++ if (!discarding) {
++ set_var(itemtag, YES, cp);
++ }
++ }
++ break;
++ case VALUE:
++ cp = tempstr;
++ while (*s != '}' && *s != '\n' && *s != '\0')
++ *cp++ = *s++;
++ *cp = 0;
++ if (*s == '}') s++;
++ if (!discarding) {
++ (void) strcat(outstring, get_var(tempstr));
+ }
+ break;
+ default:
+@@ -406,6 +581,13 @@
+ ++s;
+ break;
+ case '@':
++ /* handle 3 char @ tokens @ + "'`=^~ + letter */
++ if (s[1] != '\0' &&
++ ((s[2] >= 'a' && s[2] <= 'z') || (s[2] >= 'A' && s[2] <= 'Z')) &&
++ strchr("\"'`=^~", s[1]) != NULL) {
++ s += 2;
++ break;
++ }
+ s = strpbrk_like(q + 1, endchars );
+ /* handles 2 char @ tokens: @{ @} @@ @: @. @* */
+ if ( strchr("{}@:.*", *s) == NULL
diff --git a/textproc/texi2roff/patches/patch-ag b/textproc/texi2roff/patches/patch-ag
new file mode 100644
index 00000000000..ab70bcd01ca
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-ag
@@ -0,0 +1,54 @@
+$NetBSD: patch-ag,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- items.c.orig Mon May 28 11:39:14 2001
++++ items.c Mon May 28 12:19:28 2001
+@@ -14,6 +14,7 @@
+ #define ENUMERATE 1
+ #define TABLE 2
+ #define APPLY 3
++#define MULTITABLE 4
+
+ #define MAXILEVEL 10
+ int icount[MAXILEVEL];
+@@ -27,8 +28,8 @@
+ extern struct tablerecd * lookup();
+
+ /*
+- * itemize - handle the itemizing start commands @enumerate, @itemize
+- * and @table
++ * itemize - handle the itemizing start commands @enumerate, @itemize,
++ * @table, and @multitable
+ */
+
+ char * itemize(s, token)
+@@ -58,7 +59,9 @@
+ } else if (STREQ(token,"@enumerate")) {
+ what[ilevel] = ENUMERATE;
+ icount[ilevel] = 1;
+- } else if (STREQ(token,"@table")) {
++ } else if (STREQ(token,"@table") ||
++ STREQ(token,"@ftable") ||
++ STREQ(token,"@vtable")) {
+ what[ilevel] = TABLE;
+ s = gettoken(eatwhitespace(s),tag);
+ if (*tag == '\n') {
+@@ -75,6 +78,11 @@
+ }
+ }
+ }
++ } else if (STREQ(token,"@multitable")) {
++ what[ilevel] = MULTITABLE;
++ icount[ilevel] = 1;
++ } else {
++ errormsg("unrecognized itemizing command ",token);
+ }
+ while (*s != '\n' && *s != '\0')
+ ++s; /* flush rest of line */
+@@ -98,6 +106,7 @@
+ (void) sprintf(tag, "%d.", icount[ilevel]++);
+ break;
+ case TABLE:
++ case MULTITABLE:
+ s = eatwhitespace(s);
+ if (*s == '\n') {
+ *tag++ = '-';
diff --git a/textproc/texi2roff/patches/patch-ah b/textproc/texi2roff/patches/patch-ah
new file mode 100644
index 00000000000..75fd504d6e8
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-ah
@@ -0,0 +1,13 @@
+$NetBSD: patch-ah,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- Makefile.orig Mon May 28 12:21:57 2001
++++ Makefile Mon May 28 12:22:10 2001
+@@ -19,7 +19,7 @@
+
+ translate.o : texi2roff.h
+
+-table.o : texi2roff.h tablems.h tablemm.h tableme.h
++table.o : texi2roff.h tablems.h tablemm.h tableme.h tablemandoc.h
+
+ items.o: texi2roff.h
+
diff --git a/textproc/texi2roff/patches/patch-ai b/textproc/texi2roff/patches/patch-ai
new file mode 100644
index 00000000000..f11637538cc
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-ai
@@ -0,0 +1,33 @@
+$NetBSD: patch-ai,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- table.c.orig Mon May 28 12:22:42 2001
++++ table.c Mon May 28 13:02:59 2001
+@@ -25,6 +25,7 @@
+ #include "tablems.h"
+ #include "tableme.h"
+ #include "tablemm.h"
++#include "tablemandoc.h"
+
+ char indexmacro[] = ".de iX \n.tm \\\\$1 \\\\n%\n..\n";
+ char trquotes[] = ".tr \\(is'\n.tr \\(if`\n.tr \\(pd\"\n";
+@@ -38,7 +39,7 @@
+ int showInfo;
+ int makeindex;
+ {
+- extern void patchtable();
++ static void patchtable();
+ int tablesize;
+
+ switch (macropkg) {
+@@ -56,6 +57,11 @@
+ table = metable;
+ tablesize = sizeof metable;
+ cmds = &mecmds;
++ break;
++ case MANDOC:
++ table = mandoctable;
++ tablesize = sizeof mandoctable;
++ cmds = &mandoccmds;
+ break;
+ }
+ endoftable = table + tablesize/sizeof table[0];
diff --git a/textproc/texi2roff/patches/patch-aj b/textproc/texi2roff/patches/patch-aj
new file mode 100644
index 00000000000..438d5348187
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-aj
@@ -0,0 +1,23 @@
+$NetBSD: patch-aj,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+
+--- texi2roff.c.orig Mon May 28 12:51:54 2001
++++ texi2roff.c Mon May 28 12:53:48 2001
+@@ -70,6 +70,9 @@
+ case 'e':
+ macropkg = ME;
+ break;
++ case 'a':
++ macropkg = MANDOC;
++ break;
+ default:
+ errflg++;
+ break;
+@@ -86,7 +89,7 @@
+ }
+ if (errflg) {
+ (void) fprintf(stderr,
+- "Usage: %s [ -me -mm -ms ] [ -iIt ] [ file ... ]\n", progname);
++ "Usage: %s [ -me -mm -ms -mandoc ] [ -iIt ] [ file ... ]\n", progname);
+ exit(1);
+ }
+
diff --git a/textproc/texi2roff/patches/patch-ak b/textproc/texi2roff/patches/patch-ak
new file mode 100644
index 00000000000..72898bf1db4
--- /dev/null
+++ b/textproc/texi2roff/patches/patch-ak
@@ -0,0 +1,149 @@
+$NetBSD: patch-ak,v 1.1.1.1 2001/05/30 11:45:42 agc Exp $
+
+--- tablemandoc.h.orig Mon May 28 13:14:52 2001
++++ tablemandoc.h Mon May 28 13:11:47 2001
+@@ -0,0 +1,144 @@
++/*
++ * tablemandoc.h - -mandoc macros table and other explicit troff
++ * command strings
++ *
++ */
++
++#include "table-common.h"
++
++/*
++ * miscellaneous commands, described in texi2roff.h
++ */
++struct misccmds mandoccmds = {
++ "'\\\" t\n.de TQ\n.br\n.ns\n.TP \\\\$1\n..\n",
++ "\n.PP\n",
++ "\n.IP\n",
++ "\n.RS\n",
++ "\n.RE\n"
++};
++
++struct tablerecd mandoctable[] = { TABLE_COMMON
++ "@MANquote", "\n", "", "\n", "", PARAGRAPH,
++ "@MANtitle", "\n", ".TH ", "\n", "", PARAGRAPH,
++ "@MANskip", "@MANend-skip","", "", "", DISCARD,
++ "@appendix", "\n",
++ "\n.if !\\n(_- \\{\\\n.nr _- 1\n.nr $1 0 1\n.af $1 A\\}\n.bp\n.ds __ ",
++ "\n.sh 1 \\*(__ \n.(x \n\\n($1 \\*(__ \n.)x\n","\\fB", HEADING,
++ "@appendixsec", "\n", "\n.ds __ ",
++ "\n.sh 2 \\*(__ \n.(x \n\\n($1.\\n($2 \\*(__ \n.)x\n",
++ "\\fB", HEADING,
++ "@appendixsection", "\n", "\n.ds __ ",
++ "\n.sh 2 \\*(__ \n.(x \n\\n($1.\\n($2 \\*(__ \n.)x\n",
++ "\\fB", HEADING,
++ "@appendixsubsec", "\n", "\n.ds __ ",
++ "\n.sh 3 \\*(__ \n.(x \n\\n($1.\\n($2.\\n($3 \\*(__ \n.)x\n",
++ "\\fB", HEADING,
++ "@appendixsubsubsec","\n", "\n.ds __ ",
++ "\n.sh 4 \\*(__ \n.(x \n\\n($1.\\n($2.\\n($3.\\n($4 \\*(__ \n.)x\n",
++ "\\fB", HEADING,
++ "@bullet{", "}", "* ", "", "", CHAR,
++ "@chapter", "\n", "\n.SH ","\n", "", HEADING,
++ "@contents", "\n", "\n.nr % 0 1\n.af % i\n.bp \\n%+1\n",
++ ".ce\n\\fBTable of Contents\\fR\n.sp 2\n.xp \n","",INPARA,
++ "@defcmd", "@end", "\n.lp\n*\\ Command: ","","", HEADING,
++ "@defcmdx", "\n", "\n.lp\n*\\ Command: ","\n.br\n","",HEADING,
++ "@defconst", "@end", "\n.lp\n*\\ Constant: ","","", HEADING,
++ "@defconstx", "\n", "\n.lp\n*\\ Constant: ","\n.br\n","",HEADING,
++ "@deffn", "@end", "\n.lp\n*\\ ", "", "", HEADING,
++ "@deffnx", "\n", "\n.lp\n*\\ ", "\n.br\n","", HEADING,
++ "@defmac", "@end", "\n.lp\n*\\ Macro: ","","", HEADING,
++ "@defmacx", "\n", "\n.lp\n*\\ Macro: ","\n.br\n","",HEADING,
++ "@defmethod", "@end", "\n.lp\n*\\ Operation on ","","",HEADING,
++ "@defmethodx", "\n", "\n.lp\n*\\ Operation on ","\n.br\n",
++ "", HEADING,
++ "@defopt", "@end", "\n.lp\n*\\ User Option: ","","",HEADING,
++ "@defoptx", "\n", "\n.lp\n*\\ User Option: ","\n.br\n",
++ "", HEADING,
++ "@defspec", "@end", "\n.lp\n*\\ Special Form: ","","",HEADING,
++ "@defspecx", "\n", "\n.lp\n*\\ Special Form: ","\n.br\n",
++ "", HEADING,
++ "@defun", "@end", "\n.lp\n*\\ Function: ","","", HEADING,
++ "@defunx", "\n", "\n.lp\n*\\ Function: ","\n.br\n","",HEADING,
++ "@defvar", "@end", "\n.lp\n*\\ Variable: ","","", HEADING,
++ "@defvarx", "\n", "\n.lp\n*\\ Variable: ","\n.br\n","",HEADING,
++ "@display", "@end", "\n.(l I\n","\n.)l\n \n","", DISPLAY,
++ "@end", "\n", "", "\n.sp\n.in\n", "", END,
++ "@enumerate", "@end", "\n\n", "", "", ITEMIZING,
++ "@error{", "}", "error->", "", "", CHAR,
++ "@example", "@end", "\n \n.nf\n.ft 3\n.in +0.3i\n",
++ "\n.fi\n.in -0.3i\n.ft R\n.lp\n \n",
++ "\\fR\\&\\f(CW", DISPLAY,
++ "@example{", "}", "\\fR\\&\\f(CW","","\\fR\\&\\f(CW",INPARA,
++ "@exdent", "\n", "\n.lp\n", "\n", "", PARAGRAPH,
++ "@file{", "}", "\\fR\\&\\f(CW\\(if", "\\(is",
++ "\\fR\\&\\f(CW", INPARA,
++ "@footnote{", "}", "\n.(f \n", "\n.)f\n","", DISCARD,
++ "@group", "@end", "\n.(b\n", "\n.)b\n","", PARAGRAPH,
++ "@heading", "\n", "\n.bp\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@headings", "\n", "", "", "", DISCARD,
++ "@iappendix", "\n", "\n.bp\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@iappendixsec", "\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@iappendixsubsec", "\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@ichapter", "\n", "\n.bp\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@ignore", "@end", "", "", "", PARAGRAPH,
++ "@include", "\n", "", "", "", INCLUDE,
++ "@isection", "\n", "\n.SS ", "\n", "", HEADING,
++ "@isubsection", "\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@isubsubsection", "\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@item", "\n", "\n.TP\n", "\\ \n","", ITEM,
++ "@itemize", "@end", "\n\n", "", "", ITEMIZING,
++ "@itemx", "\n", ".TQ\n", "\n", "", ITEM,
++ "@iunnumbered", "\n", "\n.SH ", "\n", "", HEADING,
++ "@iunnumberedsec", "\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@iunnumberedsubsec","\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@majorheading", "\n", "\n.sp 4\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@menu", "@end", "\n.(l I\n\\s8Menu: \n",
++ "\\s0\n.)l\n","", DISPLAY,
++ "@node", "\n", "\n.lp\n\\s8Node:",
++ "\\s0\n.br\n","", PARAGRAPH,
++ "@noindent", "\n", "\n.lp\n", "", "", PARAGRAPH,
++ "@pxref{", "}", "see section ","", "", PARAGRAPH,
++ "@quotation", "@end", "\n.(q\n.nh\n", "\n.)q\n","", DISPLAY,
++ "@samp{", "}", "\\fR\\&\\f(CW\\(if", "\\(is",
++ "\\fR\\&\\f(CW",INPARA,
++ "@section", "\n", "\n.SS ", "\n", "", HEADING,
++ "@settitle", "\n", "\n.ds St ",
++ "\n.oh '\\\\*(St''%'\n.eh '%''\\\\*(St'\n","", HEADING,
++ "@smallbook", "\n", "", "", "", DISCARD,
++ "@smallexample", "@end", "\n.(l I\n\\fR\\&\\f(CW\n",
++ "\n.)l\n", "\\fR\\&\\f(CW",DISPLAY,
++ "@subheading", "\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@subsection", "\n", "\n.SS \\ \\ ", "\n", "", HEADING,
++ "@subsubheading", "\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@subsubsection", "\n", "\n.ds __ \n.B ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@summarycontents", "\n", "\n.nr % 0 1\n.af % i\n.bp \\n%+1\n",
++ ".ce\n\\fBTable of Contents\\fR\n.sp 2\n.xp \n","", INPARA,
++ "@table", "@end", "\n\n", "", "", ITEMIZING,
++ "@titlefont{", "}", "\n.sz +10\n.ce\n",
++ "\n.sz -10\n","",PARAGRAPH,
++ "@titlepage", "@end", "\n.tp\n", "\n.bp\n","", PARAGRAPH,
++ "@titlespec", "@end", "\n.tp\n.ce \n\\&\\*(St \n",
++ "\n", "", PARAGRAPH,
++ "@unnumbered", "\n", "\n.SH ", "\n", "", HEADING,
++ "@unnumberedsec", "\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@unnumberedsubsec","\n", "\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@unnumberedsubsubsec","\n","\n.ds __ ",
++ "\n.(x \n\\*(__ \n.)x\n.uh \\*(__ \n","\\fB", HEADING,
++ "@vfil", "\n", "", "\n", "", DISCARD
++};
++
diff --git a/textproc/texi2roff/pkg/DESCR b/textproc/texi2roff/pkg/DESCR
new file mode 100644
index 00000000000..b82f2a33771
--- /dev/null
+++ b/textproc/texi2roff/pkg/DESCR
@@ -0,0 +1,6 @@
+Texi2roff is an unmaintained program program to convert Texinfo to troff.
+Beverly Erlebacher wrote the program and made the last release in the late
+1980's. William Bader produced a patch in 1996 adding numerous commands and
+other functionality. Alain Knaff added a translation table to generate man
+pages, and uses it to generate the manuals for mtools. Ben Collver
+integrated William Bader's and Alain Knaff's changes and made minor cleanups.
diff --git a/textproc/texi2roff/pkg/PLIST b/textproc/texi2roff/pkg/PLIST
new file mode 100644
index 00000000000..a2188caf650
--- /dev/null
+++ b/textproc/texi2roff/pkg/PLIST
@@ -0,0 +1,3 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2001/05/30 11:45:41 agc Exp $
+bin/texi2roff
+man/man1/texi2roff.1