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.

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:
