summaryrefslogtreecommitdiff
path: root/contrib/groffer
diff options
context:
space:
mode:
authorwl <wl>2013-08-11 08:26:58 +0000
committerwl <wl>2013-08-11 08:26:58 +0000
commit8375908f83748c8ed9a611f49da8e973f19badbc (patch)
treec385b1ff64d8f4cdb759bfd0c61c8f65a9a3bd57 /contrib/groffer
parent42a4e0d4d06981b35b42a38e99d1b024e61fb3d7 (diff)
downloadgroff-8375908f83748c8ed9a611f49da8e973f19badbc.tar.gz
Revert last accidental removal of files.
Diffstat (limited to 'contrib/groffer')
-rw-r--r--contrib/groffer/ChangeLog314
-rw-r--r--contrib/groffer/Makefile.sub149
-rw-r--r--contrib/groffer/README123
-rw-r--r--contrib/groffer/roff2.man249
-rw-r--r--contrib/groffer/version.sh38
5 files changed, 873 insertions, 0 deletions
diff --git a/contrib/groffer/ChangeLog b/contrib/groffer/ChangeLog
new file mode 100644
index 00000000..2fc3d0f7
--- /dev/null
+++ b/contrib/groffer/ChangeLog
@@ -0,0 +1,314 @@
+2013-04-11 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/groffer: There is now a free `git' package containing
+ all old `groffer' versions `v0.*' and `v1.*'. The new versions
+ `groffer 2.*' will actually not be included. This package can be
+ got at:
+
+ $ git clone git@github.com:RUNOFF/groffer.git
+
+2013-03-29 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * perl/groffer.pl: Change viewers for `PS'.
+
+2013-03-29 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * perl/groffer.pl: Change viewers for `PS' and `PDF'.
+
+ * version.sh: New version is `1.1.3'.
+
+2012-08-09 Werner LEMBERG <wl@gnu.org>
+
+ Synchronize man pages.
+
+ * perl/groffer.man, shell/groffer.man: Fix many minor issues.
+
+2012-08-07 Eric S. Raymond <esr@thyrsus.com>
+
+ Yet more elimination of low-level troff hackery in the
+ documentation so it can be lifted to structural markup.
+
+ * perl/groffer.man: Use .IP rather than .TP in
+ .Topic; this make structural parsing work. Also remove a
+ pointless and somewhat out-of-date .ig section.
+
+2011-10-17 Ingo Schwarze <schwarze@openbsd.org>
+
+ Do not use INSTALL_DATA and INSTALL_SCRIPT during build phase.
+
+ * Makefile.sub (groffer): Replace INSTALL_DATA and
+ INSTALL_SCRIPT with `cp'. Otherwise the build phase might
+ fail with `permission denied' if you use the `-o root' flag
+ of the `install' command. The use of INSTALL_* is an abuse
+ anyway because it's not installing anything at that point;
+ it's just copying files around locally, within in the build
+ directories.
+
+2011-03-21 Jan Vcelak <jvcelak@redhat.com>
+ Bernd Warken <groff-bernd.warken-72@web.de>
+
+ Remove hardcoded path to 'libdir/groff/groffer' directory.
+
+ * Makefile.sub: use @groffer_dir@
+
+ * groffer.pl: use @groffer_dir@
+
+2011-01-27 James Budiono <james.budiono@gmail.com>
+ Bernd Warken <groff-bernd.warken-72@web.de>
+
+ Fix display of manpages.
+
+ Reported as
+ http://lists.gnu.org/archive/html/bug-groff/2011-01/msg00015.html.
+
+ * perl/groffer.pl (_get_first_prog): Fix return value.
+ (Viewer_X): Add `okular' viewer.
+ * perl/man.pl (manpath_set_from_path): Handle `@main::Path)'
+ correctly.
+
+ * version.sh: Updated.
+
+2009-01-03 Werner LEMBERG <wl@gnu.org>
+
+ * version.sh: Prepare for groff release 1.20.
+
+2008-01-04 Werner LEMBERG <wl@gnu.org>
+
+ * shell/groffer.man, perl/groffer.man: Insert `\:' in URLs where
+ appropriate.
+
+2007-02-15 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * perl/groffer.man, perl/groffer.man: Fix non-portable `if'
+ expressions.
+
+2007-02-13 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ Use an-ext.tmac macros in groffer.man.
+
+ * perl/groffer.man, perl/groffer.man: Replace ShellCommand with
+ .EX/.EE pairs.
+ Don't use .TP for examples, as some viewers won't handle a display
+ macro as a tag line. Use .SY/.OP/.YS rather than elaborate custom
+ macros.
+
+2007-02-02 Werner LEMBERG <wl@gnu.org>
+
+ * roff2.man: Further refinements and normalizations.
+
+2007-02-02 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * roff2.man: Converted to use .SY/.OP/.YS and for cross-viewer
+ portability. Conversion checked using the protocol described in
+ tmac/TESTING-HINTS.
+
+2006-11-14 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.sub (GROFFER_REST): Add roff2.man.
+ (groffer): Use $(INSTALL_DATA) for man pages.
+ Don't call `chmod' for $(ROFF2PROGS).
+ (roff2.man): Typographical fixes.
+
+2006-11-11 Bernd Warken <groff-bernd.warken-72@web.de>
+ ________________________________________________________________
+ * release of groffer 1.1.1
+
+ * perl/roff2.pl, shell/roff2.sh: Create a new working mode without
+ `groffer' for `roff2*'.
+
+ * perl/groffer.pl: Fix test of temporary directory.
+
+2006-11-09 Bernd Warken <groff-bernd.warken-72@web.de>
+ ________________________________________________________________
+ * release of groffer 1.1.0
+
+ * perl/groffer.pl, perl/func.pl, perl/groffer.man, \
+ shell/groffer2.sh, shell/groffer.man: Add `--debug-grog' to
+ display the `grog' output.
+
+ * perl/roff2.pl, shell/roff2.sh: New files for creating the roff2*
+ programs to transform roff code to different formats.
+
+ * roff2.man: New file to create man pages for the roff2*
+ programs.
+
+ * Makefile.sub: Add roff2* and some minor fixes.
+
+2006-11-04 Bernd Warken <groff-bernd.warken-72@web.de>
+ ________________________________________________________________
+ * release of groffer 1.0.3
+
+ * Makefile.sub:
+ - Delete removing of $(CLEANADD) in `groffer'.
+ - Add $(MAN1) to `groffer'.
+
+ * perl/groffer.pl, perl/func.pl, shell/groffer2.sh:
+ - Add `groff' option with argument `-K'.
+ - Redesign the changed `grog'.
+
+2006-10-23 Bernd Warken <groff-bernd.warken-72@web.de>
+ ________________________________________________________________
+ * release of groffer 1.0.2
+
+ * perl/groffer.pl:
+ - Move all variable declarations out of BEGIN.
+ - Move all `use' commands outside of BEGIN. Fix the arising
+ errors.
+ - Correct new position of perl/perl_test.pl.
+
+ * perl/func.pl:
+ - version(): Fix the determination of the version of groff.
+ - usage(): Sort it among the functions in this file.
+
+ * perl/groffer.man, shell/groffer.man: Fix string variable
+ Ellipsis.
+
+ * shell/README_SH: Add information on Autobook.
+
+ * shell/groffer.sh:
+ - Extent simple shell tests by testing on support for functions.
+ Test standard shell on function support. Add error reports on
+ shell tests.
+ - Set unset variables LANG LC_ALL LC_MESSAGES LC_CTYPES LANGUAGES
+ to `C', according to Autobook, ch. 22.
+ - Remove option `-e' from `sed'.
+
+ * shell/groffer2.sh:
+ - Add test on directory in man path find.
+ - Add Bourne compatibility for zsh shell.
+ - Replace `echo -n ""' by `:'.
+ - Remove -e option from sed.
+
+2006-10-23 Werner Lemberg
+
+ * perl_test.pl: Moved to...
+ * perl/perl_test.pl: Here.
+
+ * Makefile.sub: Rewritten. Change PERL to HAVE_PERL and SHELL to
+ HAVE_SHELL.
+
+2006-10-14 Bernd Warken <groff-bernd.warken-72@web.de>
+ ________________________________________________________________
+ * release of groffer 1.0.1
+
+ * perl/groffer.pl: Change $perl_test_pl to $file_perl_test_pl.
+
+ * perl/groffer.pl, perl/func.pl: Remove `\n' in `die' calls.
+
+2006-10-12 Bernd Warken <groff-bernd.warken-72@web.de>
+ ________________________________________________________________
+ * release of groffer 1.0.0
+
+ Changements of the shell version since 0.9.31
+
+ * shell/groffer.sh: Use version.sh in the upper directory.
+
+2006-10-02 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ The groffer versions 1.* have two kinds of program, a shell
+ version and a Perl version.
+
+ The shell version is kept from the old shell only versions of
+ groffer 0.*. Most of the former files in the main groffer
+ directory are now moved to the subdirectoy shell/.
+
+ The Perl version of groffer is a complete rewrite; most of its
+ files are found in the subdirectory perl/.
+
+ The Makefile.sub decides whether the shell or Perl version of
+ groffer is installed. This is done by the program perl_test.pl.
+
+ In the following, all files in the groffer directory tree are
+ mentioned.
+
+ * ChangeLog: This file. It contains information for `groffer'
+ versions >= 1.0.0 with shell and Perl kinds. For older `groffer'
+ versions, see `shell/ChangeLog.0' which contains information for the
+ shell only versions of groffer 0.*.
+
+ * Makefile.sub: The old `Makefile.sub' was extended to support the
+ shell and the Perl version of `groffer' at the same time. If the
+ test of `perl_test.pl' succeeds the `groffer' Perl version will be
+ installed, otherwise the shell version is used.
+
+ * perl_test.pl: This is used by `Makefile.sub' and installed with
+ the Perl version of `groffer'. It is a test of the installed perl
+ version. The installed Perl version should be greater or equal
+ than the version that is required by this file.
+
+ * version.sh: This is the old file kept from the shell version of
+ `groffer'. It stores the `groffer' version, the date of the last
+ update, and the `groff' version. It is used and installed for the
+ shell and Perl version of `groffer'.
+
+ * README: This is the old `README' file extended by information on
+ the shell and Perl kinds of `groffer'.
+
+ * perl/: Subdirectory for the Perl version of `groffer'.
+
+ * perl/groffer.pl: This is the `groffer' script of the Perl
+ version, a Perl source file that handles the complete groffer
+ functionality.
+
+ * perl/man.pl: This is the collection of functions that are
+ related to man pages, `apropos', and `whatis'. It is loaded by
+ `perl/groffer.pl'.
+
+ * perl/func.pl: This is the collection of miscellaneous functions.
+ It is loaded by `perl/groffer.pl'.
+
+ * perl/split_env.sh: A shell script that is used by
+ `perl/groffer.pl' to split a large shell environment variable to a
+ Perl array.
+
+ * perl/groffer.man: This is the man page of the Perl version of
+ `groffer'. It is derived from `groffer.man' of the shell version.
+ It will only be installed when the `Makefile.sub' chooses to
+ install the Perl version of 'groffer' instead of the shell
+ version.
+
+ * perl/README_PERL: This file contains information of the Perl
+ compatibility and details that are special to the Perl version.
+
+ * shell/: Subdirectory for the shell version of `groffer'.
+
+ * shell/ChangeLog.0: The former `ChangeLog' file of the groffer
+ versions 0.* was moved to this file. It contains information of
+ the shell only version of groffer 0.*.
+
+ * shell/groffer.sh: This is the old `groffer.sh' file of the shell
+ version.
+
+ * shell/groffer2.sh: This is the old `groffer2.sh' file of the
+ shell version.
+
+ * shell/groffer.man: This is the old man page groffer.man of the
+ shell version. The shell version keeps its own man page. It will
+ only be installed when the `Makefile.sub' chooses to install the
+ shell version instead of the Perl version.
+
+ * shell/README_SH: This is the old `README_SH' file of the shell
+ version containing information of the shell compatibility.
+
+ The former part of the ChangeLog file is in `shell/ChangeLog.0'.
+
+2006-10-01 Bernd Warken <groff-bernd.warken-72@web.de>
+________________________________________________________________
+License
+
+Copyright (C) 2006-2009, 2011
+ Free Software Foundation, Inc.
+Written by Bernd Warken <groff-bernd.warken-72@web.de>.
+
+Copying and distribution of this file, with or without
+modification, are permitted provided the copyright notice and this
+notice are preserved.
+
+This file is part of `groffer', which is part of the `groff'
+project.
+
+####### Emacs settings
+
+Local Variables:
+mode: change-log
+End:
diff --git a/contrib/groffer/Makefile.sub b/contrib/groffer/Makefile.sub
new file mode 100644
index 00000000..f0282dda
--- /dev/null
+++ b/contrib/groffer/Makefile.sub
@@ -0,0 +1,149 @@
+# Makefile.sub for `groffer' (integration into the `groff' source tree)
+
+# File position: <groff-source>/contrib/groffer/Makefile.sub
+
+# Copyright (C) 2001, 2002, 2005, 2006, 2009, 2011
+# Free Software Foundation, Inc.
+# Written by Werner Lemberg <wl@gnu.org> and
+# Bernd Warken <groff-bernd.warken-72@web.de>.
+
+# Last update: 17 Oct 2011
+
+# This file is part of `groffer' which is part of `groff'.
+
+# `groff' is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# `groff' is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+########################################################################
+
+ROFF2MODES=dvi html pdf ps text x
+ROFF2PROGS=`echo $(ROFF2MODES) | sed 's/[a-z][a-z]*/roff2&/g'`
+ROFF2MAN=`echo $(ROFF2MODES) | sed 's/[a-z][a-z]*/roff2&.man/g'`
+ROFF2MANN=`echo $(ROFF2MODES) | sed 's/[a-z][a-z]*/roff2&.n/g'`
+
+MAN1=groffer.n \
+ roff2dvi.n \
+ roff2html.n \
+ roff2pdf.n \
+ roff2ps.n \
+ roff2text.n \
+ roff2x.n
+
+MOSTLYCLEANADD=groffer HAVE_PERL HAVE_SHELL groffer.man \
+ $(MAN1) $(ROFF2MAN) $(ROFF2PROGS)
+
+# not all make programs have $(RM) predefined.
+RM=rm -f
+
+all: groffer
+
+GROFFER_PERL=$(srcdir)/perl/func.pl \
+ $(srcdir)/perl/man.pl \
+ $(srcdir)/perl/perl_test.pl \
+ $(srcdir)/perl/split_env.sh
+GROFFER_SHELL=$(srcdir)/shell/groffer2.sh
+GROFFER_REST=$(srcdir)/roff2.man \
+ $(srcdir)/version.sh \
+ $(srcdir)/perl/groffer.man \
+ $(srcdir)/perl/groffer.pl \
+ $(srcdir)/perl/roff2.pl \
+ $(srcdir)/shell/roff2.sh \
+ $(srcdir)/shell/groffer.man \
+ $(srcdir)/shell/groffer.sh
+
+GROFFER_PERL_=`echo $(GROFFER_PERL) | sed 's|$(srcdir)/perl/||g'`
+GROFFER_SHELL_=`echo $(GROFFER_SHELL) | sed 's|$(srcdir)/shell||g'`
+
+# TODO: Add perl check to configure script.
+groffer: $(GROFFER_PERL) $(GROFFER_SHELL) \
+ $(GROFFER_REST) $(SH_DEPS_SED_SCRIPT)
+ if perl $(srcdir)/perl/perl_test.pl 2>&1 >/dev/null; then \
+ : >HAVE_PERL; \
+ echo "Using perl version of groffer."; \
+ sed -f "$(SH_DEPS_SED_SCRIPT)" \
+ -e "s|@g@|$(g)|g" \
+ -e "s|@BINDIR@|$(DESTDIR)$(bindir)|g" \
+ -e "s|@libdir@|$(DESTDIR)$(libdir)|g" \
+ -e "s|@groffer_dir@|$(DESTDIR)$(groffer_dir)|g" \
+ -e "s|@VERSION@|$(version)$(revision)|g" \
+ -e "$(SH_SCRIPT_SED_CMD)" \
+ $(srcdir)/perl/groffer.pl >$@; \
+ cp $(srcdir)/perl/groffer.man groffer.man; \
+ for f in $(ROFF2PROGS); do \
+ cp $(srcdir)/perl/roff2.pl $$f; \
+ done; \
+ else \
+ : >HAVE_SHELL; \
+ echo "Using shell version of groffer."; \
+ sed -f "$(SH_DEPS_SED_SCRIPT)" \
+ -e "s|@g@|$(g)|g" \
+ -e "s|@BINDIR@|$(DESTDIR)$(bindir)|g" \
+ -e "s|@libdir@|$(DESTDIR)$(libdir)|g" \
+ -e "s|@groffer_dir@|$(DESTDIR)$(groffer_dir)|g" \
+ -e "s|@VERSION@|$(version)$(revision)|g" \
+ -e "$(SH_SCRIPT_SED_CMD)" \
+ $(srcdir)/shell/groffer.sh >$@; \
+ cp $(srcdir)/shell/groffer.man groffer.man; \
+ for f in $(ROFF2PROGS); do \
+ cp $(srcdir)/shell/roff2.sh $$f; \
+ done; \
+ fi
+ chmod +x $@
+ for m in $(ROFF2MODES); do \
+ cat $(srcdir)/roff2.man \
+ | sed 's/@ROFF2MODE@/'"$$m"'/g' > roff2$${m}.man; \
+ done
+
+install_data: groffer
+ -test -d $(DESTDIR)$(bindir) || $(mkinstalldirs) $(DESTDIR)$(bindir)
+ $(RM) $(DESTDIR)$(bindir)/groffer
+ $(INSTALL_SCRIPT) groffer $(DESTDIR)$(bindir)/groffer
+ for f in $(ROFF2PROGS); do \
+ $(RM) $(DESTDIR)$(bindir)/$$f; \
+ $(INSTALL_SCRIPT) $$f $(DESTDIR)$(bindir)/$$f; \
+ done
+ -test -d $(DESTDIR)$(groffer_dir) \
+ || $(mkinstalldirs) $(DESTDIR)$(groffer_dir)
+ $(RM) $(DESTDIR)$(groffer_dir)/version.sh
+ $(INSTALL_DATA) $(srcdir)/version.sh \
+ $(DESTDIR)$(groffer_dir)/version.sh
+ for f in $(GROFFER_PERL_) $(GROFFER_SHELL_); do \
+ $(RM) $(DESTDIR)$(groffer_dir)/$$f; \
+ done
+ if test -f HAVE_PERL; then \
+ for f in $(GROFFER_PERL_); do \
+ $(INSTALL_SCRIPT) $(srcdir)/perl/$$f \
+ $(DESTDIR)$(groffer_dir)/$$f; \
+ done; \
+ elif test -f HAVE_SHELL; then \
+ for f in $(GROFFER_SHELL_); do \
+ $(INSTALL_SCRIPT) $(srcdir)/shell/$$f \
+ $(DESTDIR)$(groffer_dir)/$$f; \
+ done; \
+ fi;
+
+uninstall_sub:
+ $(RM) $(DESTDIR)$(bindir)/groffer
+ for f in $(ROFF2PROGS); do $(RM) $(DESTDIR)$(bindir)/$$f; done
+ for f in $(GROFFER_PERL_) $(GROFFER_SHELL_) version.sh; do \
+ $(RM) $(DESTDIR)$(groffer_dir)/$$f; \
+ done
+ -rmdir $(DESTDIR)$(libdir)/groff/groffer
+
+########################################################################
+# Emacs settings
+########################################################################
+#
+# Local Variables:
+# mode: makefile
+# End:
diff --git a/contrib/groffer/README b/contrib/groffer/README
new file mode 100644
index 00000000..a44d2bc2
--- /dev/null
+++ b/contrib/groffer/README
@@ -0,0 +1,123 @@
+README
+
+The `groffer' program is the easiest way to read documents written in
+some `roff' language, such as the `man pages', the manual pages in
+many operating systems. All `roff' preprocessors, such as `chem', are
+detected and executed automatically.
+
+
+Source files in this directory
+
+ChangeLog information on all changements for groffer versions 1.*
+Makefile.sub make file used by groff
+README this file, general description of the program
+version.sh information on version number and last update
+perl_test.pl test whether perl has a suitable version
+perl/ subdirectory for the Perl version, see perl/README_PERL
+shell/ subdirectory for the shell version, see shell/README_SH
+
+
+Input
+
+Input comes from either standard input or command line parameters that
+represent names of exisiting roff files or standardized specifications
+for searching man pages. All of these can be compressed in a format
+that is decompressible by `gzip' or `bzip2', including `.gz', `bz2',
+and `.Z'.
+
+`groffer' has many built-in `man' functionalities to find and read the
+manual pages on UNIX and similar operating systems. It accepts the
+information from an installed `man' program, but tries to find a man
+path by itself.
+
+`groffer' bundles all filespec parameters into a single output file in
+the same way as `groff'. The disadvantage of this is that all file
+name arguments must use the same groff language. To change this, the
+option parsing must be revised for large parts. It seems that this
+would create incompatibilities, so the actual option strategy is kept.
+
+
+Output
+
+All input is first sent to `grog' to determine the necessary `groff'
+command and then to `groff' together with all necessary preprocessors.
+So no special `groff' arguments must be given. But all `groff'
+options can be specified when this seems to be appropriate.
+
+The following displaying modes for the output are available:
+- Display formatted input with
+-- a PDF viewer,
+-- a Postcript viewer,
+-- a web browser,
+-- the X `roff' viewer `gxditview',
+-- a DVI viewer,
+-- a pager in a text terminal (tty).
+- Generate `groff' output on stdout without a viewer.
+- Generate the `groff intermediate output' on standard output without
+ postprocessing.
+- Output the source code without any `groff' processing.
+- There are some information outputs without `groff' processing, such
+ as by option `-V' and the `man' like `whatis' and `apropos'
+ outputs.
+
+By default, the program tries to display a graphical device in X; on
+non-X text terminals, the `tty' text mode with a pager is tried by
+default.
+
+
+File access
+
+The shell and the Perl version of groffer now use umask of 077. This
+is a very strict security issue. It allows only access of the
+temporary files by the file owner.
+
+
+Compatibility
+
+`groffer' is compatible with the `man' program. It supports .so
+requests based on the man path and compressed files. That's more than
+`groff' does.
+
+
+Mailing lists
+
+For reporting bugs of `groffer', groff's free mailing list
+<bug-groff@gnu.org> can be used.
+
+For a general discussion, the mailing list <groff@gnu.org> is more
+useful, but one has to subscribe to this list at
+http://lists.gnu.org/mailman/listinfo/groff.
+
+See the `README' file in the top directory of the `groff' source
+package for more details on these mailing lists.
+
+
+####### License
+
+Last update: 5 Jan 2009
+
+Copyright (C) 2003, 2004, 2005, 2006, 2009
+ Free Software Foundation, Inc.
+Written by Bernd Warken <groff-bernd.warken-72@web.de>.
+
+This file is part of `groffer', which is part of `groff'.
+
+`groff' is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+`groff' is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+####### Emacs settings
+
+Local Variables:
+mode: text
+End:
diff --git a/contrib/groffer/roff2.man b/contrib/groffer/roff2.man
new file mode 100644
index 00000000..68af4291
--- /dev/null
+++ b/contrib/groffer/roff2.man
@@ -0,0 +1,249 @@
+.ig
+roff2@ROFF2MODE@.1 - man page for roff2@ROFF2MODE@ (section 1).
+
+Source file position: <groff_source_top>/contrib/groffer/roff2.man
+Installed position: $prefix/share/man/man1/roff2@ROFF2MODE@.1
+
+Last update: 5 Jan 2009
+Simplified to use .SY/.OP/.YS
+..
+.
+.
+.de au
+This file was written by Bernd Warken <groff-bernd.warken-72@web.de>.
+..
+.
+.
+.de co
+Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc.
+.
+.P
+This file is part of
+.IR \%groffer ,
+which is part of
+.IR \%groff ,
+a free software project.
+.
+You can redistribute it and/or modify it under the terms of the
+.nh
+.B "GNU General Public License"
+.hy
+as published by the
+.nh
+.BR "Free Software Foundation" ,
+.hy
+either version\~2, or (at your option) any later version.
+.
+.P
+You should have received a copy of the \f[CR]GNU General Public
+License\f[] along with
+.IR groff ,
+see the files \%\f[CB]COPYING\f[] and \%\f[CB]LICENSE\f[] in the top
+directory of the
+.I groff
+source package.
+.
+Or read the
+.I man\~page
+.BR gpl (1).
+You can also write to the
+.nh
+.B "Free Software Foundation, 51 Franklin St - Fifth Floor, Boston,"
+.BR "MA 02110-1301, USA" .
+.hy
+..
+.
+.
+.TH roff2@ROFF2MODE@ @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
+.SH NAME
+roff2@ROFF2MODE@ \- transform roff code into @ROFF2MODE@ mode
+.
+.
+.\" --------------------------------------------------------------------
+.SH "SYNOPSIS"
+.
+.SY roff2@ROFF2MODE@
+.RI [ \%groffer_option .\|.\|.\&]
+.OP \-\-
+.RI [ \%filespec .\|.\|.\&]
+.
+.SY roff2@ROFF2MODE@
+.B \-h
+|
+.B \-\-help
+.
+.SY roff2@ROFF2MODE@
+.B \-v
+|
+.B \-\-version
+.YS
+.
+.P
+The options
+.B \-v
+and
+.B \%\-\-version
+print the version information of the program to standard output and exit.
+.
+The options
+.B \-h
+and
+.B \-\-help
+print a usage information of the program to standard output and stop
+the program instantly.
+.
+.
+.P
+All other options are assumed to be
+.B \%groffer
+options.
+.
+They are internally passed to
+.BR \%groffer .
+They override the behavior of the program.
+.
+The options are optional, they can be omitted.
+.
+.
+.P
+The
+.I \%filespec
+arguments correspond to the
+.I \%filespec
+arguments of
+.BR \%groffer .
+So they are either the names of existing, readable files or
+.B \-
+for standard input, or the name of a man page or a
+.BR \%groffer (@MAN1EXT@)
+man page search pattern.
+.
+If no
+.I \%filespec
+is specified standard input is assumed automatically.
+.
+.
+.\" --------------------------------------------------------------------
+.SH DESCRIPTION
+.
+.B \%roff2@ROFF2MODE@
+transforms
+.I roff
+code into
+.ie '@ROFF2MODE@'x' \{\
+. I X
+mode corresponding to the
+. I groff
+devices
+. BR X *;
+this mode is suitable for
+. BR \%gxditview (@MAN1EXT@).
+.\}
+.el \{\
+. I \%@ROFF2MODE@
+mode.
+.\}
+.
+Print the result to standard output.
+.
+.
+.P
+There are more of these programs for generating other formats of
+.I \%roff
+input.
+.
+.if !'@ROFF2MODE@'dvi' \{\
+. TP
+. BR \%roff2dvi (@MAN1EXT@)
+is for
+. I dvi
+mode.
+.\}
+.
+.if !'@ROFF2MODE@'html' \{\
+. TP
+. BR \%roff2html (@MAN1EXT@)
+generates
+. I html
+output.
+.\}
+.
+.if !'@ROFF2MODE@'pdf' \{\
+. TP
+. BR \%roff2pdf (@MAN1EXT@)
+outputs
+. I pdf
+mode.
+.\}
+.
+.if !'@ROFF2MODE@'ps' \{\
+. TP
+. BR \%roff2ps (@MAN1EXT@)
+prints
+. I \%PostScript
+format to standard output.
+.\}
+.
+.if !'@ROFF2MODE@'text' \{\
+. TP
+. BR \%roff2text (@MAN1EXT@)
+generates text output in the
+. B groff
+device
+. IR latin1 .
+.\}
+.
+.if !'@ROFF2MODE@'x' \{\
+. TP
+. BR \%roff2x (@MAN1EXT@)
+prints the output in the
+. B groff
+device
+. B X
+that is suitable for programs like
+. BR \%gxditview (@MAN1EXT@)
+or
+. BR \%xditview (1).
+.\}
+.
+.
+.\" --------------------------------------------------------------------
+.SH "SEE ALSO"
+.\" --------------------------------------------------------------------
+.
+.BR \%groff (@MAN1EXT@),
+.BR \%groffer (@MAN1EXT@),
+.if !'@ROFF2MODE@'dvi' \
+. BR \%roff2dvi (@MAN1EXT@),
+.if !'@ROFF2MODE@'html' \
+. BR \%roff2html (@MAN1EXT@),
+.if !'@ROFF2MODE@'pdf' \
+. BR \%roff2pdf (@MAN1EXT@),
+.if !'@ROFF2MODE@'ps' \
+. BR \%roff2ps (@MAN1EXT@),
+.if !'@ROFF2MODE@'text' \
+. BR \%roff2text (@MAN1EXT@),
+.if !'@ROFF2MODE@'x' \
+. BR \%roff2x (@MAN1EXT@),
+.BR \%gxditview (@MAN1EXT@).
+.
+.
+.\" --------------------------------------------------------------------
+.SH "AUTHOR"
+.\" --------------------------------------------------------------------
+.au
+.
+.
+.\" --------------------------------------------------------------------
+.SH "COPYING"
+.\" --------------------------------------------------------------------
+.co
+.
+.
+.\" --------------------------------------------------------------------
+.\" Emacs settings
+.\" --------------------------------------------------------------------
+.
+.\" Local Variables:
+.\" mode: nroff
+.\" End:
diff --git a/contrib/groffer/version.sh b/contrib/groffer/version.sh
new file mode 100644
index 00000000..447b24f3
--- /dev/null
+++ b/contrib/groffer/version.sh
@@ -0,0 +1,38 @@
+#! /bin/sh
+
+# groffer - display groff files
+
+# Source file position: <groff-source>/contrib/groffer/version.sh
+# Installed position: <prefix>/lib/groff/groffer/version.sh
+
+# Copyright (C) 2001-2006, 2009, 2011, 2013
+# Free Software Foundation, Inc.
+# Written by Bernd Warken <groff-bernd.warken-72@web.de>.
+
+# This file is part of `groffer', which is part of `groff'.
+
+# `groff' is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# `groff' is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+########################################################################
+
+export _PROGRAM_VERSION;
+export _LAST_UPDATE;
+
+_PROGRAM_VERSION='1.1.3';
+_LAST_UPDATE='29 Mar 2013';
+
+# this setting of the groff version is only used before make is run,
+# otherwise @VERSION@ will set it, see groffer.sh.
+export _GROFF_VERSION_PRESET;
+_GROFF_VERSION_PRESET='1.22.2';