aboutsummaryrefslogtreecommitdiff
path: root/contrib/groff
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2000-12-05 19:06:41 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2000-12-05 19:06:41 +0000
commit6d856126f9125f9175da3d98802b642c914ce17c (patch)
treed0b5a6d2346486a486a16ca1873e326f274a1a6a /contrib/groff
parentefa37f53c60049df10a28e5194d382627a7008bb (diff)
downloadsrc-6d856126f9125f9175da3d98802b642c914ce17c.tar.gz
src-6d856126f9125f9175da3d98802b642c914ce17c.zip
Resolve conflicts after v1.16.1 import.
Notes
Notes: svn path=/head/; revision=69631
Diffstat (limited to 'contrib/groff')
-rw-r--r--contrib/groff/devascii/R.proto3
-rw-r--r--contrib/groff/eqn/neqn.sh3
-rw-r--r--contrib/groff/groff/groff.man153
-rw-r--r--contrib/groff/grops/grops.man42
-rw-r--r--contrib/groff/grotty/grotty.man85
-rw-r--r--contrib/groff/libgroff/font.cc35
-rw-r--r--contrib/groff/libgroff/illegal.cc21
-rw-r--r--contrib/groff/man/groff_out.man9
-rw-r--r--contrib/groff/nroff/nroff.man81
-rwxr-xr-xcontrib/groff/nroff/nroff.sh135
-rw-r--r--contrib/groff/src/devices/grotty/grotty.man85
-rw-r--r--contrib/groff/src/libs/libgroff/illegal.cc21
-rw-r--r--contrib/groff/src/preproc/eqn/neqn.sh3
-rw-r--r--contrib/groff/src/roff/groff/groff.man153
-rw-r--r--contrib/groff/src/roff/nroff/nroff.man81
-rwxr-xr-xcontrib/groff/src/roff/nroff/nroff.sh135
-rw-r--r--contrib/groff/tmac/eqnrc5
-rw-r--r--contrib/groff/tmac/tmac.tty5
-rw-r--r--contrib/groff/tmac/tmac.tty-char14
-rw-r--r--contrib/groff/tmac/troffrc18
-rw-r--r--contrib/groff/troff/troff.man128
21 files changed, 818 insertions, 397 deletions
diff --git a/contrib/groff/devascii/R.proto b/contrib/groff/devascii/R.proto
index 41cf140b0071..4d13f3c6db74 100644
--- a/contrib/groff/devascii/R.proto
+++ b/contrib/groff/devascii/R.proto
@@ -1,9 +1,11 @@
+# $FreeBSD$
name R
internalname 0
spacewidth 24
charset
! 24 0 0041
" 24 0 0042
+dq "
lq "
rq "
# 24 0 0043
@@ -16,6 +18,7 @@ Do "
aa "
fm "
aq "
+cq "
( 24 0 0050
) 24 0 0051
* 24 0 0052
diff --git a/contrib/groff/eqn/neqn.sh b/contrib/groff/eqn/neqn.sh
index f33b68e3b350..1ae98e8fa8b8 100644
--- a/contrib/groff/eqn/neqn.sh
+++ b/contrib/groff/eqn/neqn.sh
@@ -1,6 +1,7 @@
#!/bin/sh
# Provision of this shell script should not be taken to imply that use of
-# GNU eqn with groff -Tascii|-Tlatin1 is supported.
+# GNU eqn with groff -Tascii|-Tlatin1|-Tutf8|-Tcp1047 is supported.
+# $FreeBSD$
# Default device.
locale=${LC_CTYPE:-$LANG}
diff --git a/contrib/groff/groff/groff.man b/contrib/groff/groff/groff.man
index 1f95a779f2d7..6244404fe29f 100644
--- a/contrib/groff/groff/groff.man
+++ b/contrib/groff/groff/groff.man
@@ -1,5 +1,5 @@
.ig \"-*- nroff -*-
-Copyright (C) 1999 Free Software Foundation, Inc.
+Copyright (C) 1989-2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -34,55 +34,37 @@ the original English.
.SH NAME
groff \- front end for the groff document formatting system
.SH SYNOPSIS
+.nr a \n(.j
+.ad l
+.nr i \n(.i
+.in +\w'\fBgroff 'u
+.ti \niu
.B groff
-[
-.B \-abehilpstvzCENRSUVXZ
-]
-[
-.BI \-w name
-]
-[
-.BI \-W name
-]
-[
-.BI \-m name
-]
-[
-.BI \-F dir
-]
-[
-.BI \-I dir
-]
-[
-.BI \-T dev
-]
-[
-.BI \-f fam
-]
-[
-.BI \-M dir
-]
-[
-.BI \-d cs
-]
-[
-.BI \-r cn
-]
-[
-.BI \-n num
-]
-[
-.BI \-o list
-]
-[
-.BI \-P arg
-]
-[
-.BI \-L arg
-]
-[
-.IR files \|.\|.\|.\|
-]
+.de OP
+.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
+.el .RB "[\ " "\\$1" "\ ]"
+..
+.OP \-abeghilpstvzCEGNRSUVXZ
+.OP \-w name
+.OP \-W name
+.OP \-m name
+.OP \-F dir
+.OP \-I dir
+.OP \-T dev
+.OP \-f fam
+.OP \-M dir
+.OP \-d cs
+.OP \-r cn
+.OP \-n num
+.OP \-o list
+.OP \-P arg
+.OP \-L arg
+.RI "[\ " files\|.\|.\|. "\ ]"
+.br
+.ad \na
+.PP
+It is possible to have whitespace between a command line option and its
+parameter.
.SH DESCRIPTION
.B groff
is a front-end to the groff document formatting system.
@@ -108,13 +90,24 @@ For a 100dpi X11 previewer.
For typewriter-like devices.
.TP
.B latin1
-For typewriter-like devices using the ISO Latin-1 character set.
+For typewriter-like devices using the ISO Latin-1 (ISO 8859-1) character set.
+.TP
+.B koi8-r
+For typewriter-like devices using the Russian KOI8-R character set.
+.TP
+.B utf8
+For typewriter-like devices using the Unicode (ISO 10646) character set with
+UTF-8 encoding.
+.TP
+.B cp1047
+For typewriter-like devices which use the EBCDIC code page IBM cp1047
+(e.g. OS/390 Unix).
.TP
.B lj4
For an HP LaserJet4-compatible (or other PCL5-compatible) printer.
.TP
-.B koi8-r
-For typewriter-like devices using the russian KOI8-R character set.
+.B lbp
+For Canon CAPSL printers (LBP-4 and LBP-8 series laser printers).
.TP
.B html
To produce HTML output.
@@ -131,6 +124,8 @@ The default device is
It can optionally preprocess with any of
.BR @g@pic ,
.BR @g@eqn ,
+.BR @g@grn ,
+.BR grap ,
.BR @g@tbl ,
.BR @g@refer ,
or
@@ -157,6 +152,12 @@ Preprocess with @g@eqn.
.B \-t
Preprocess with @g@tbl.
.TP
+.B \-g
+Preprocess with @g@grn.
+.TP
+.B \-G
+Preprocess with grap.
+.TP
.B \-p
Preprocess with @g@pic.
.TP
@@ -165,7 +166,7 @@ Preprocess with @g@soelim.
.TP
.BI \-I dir
This option is as described in
-.BR @g@soelim (@MAN1EXT@) .
+.BR @g@soelim (@MAN1EXT@).
This option implies the
.B \-s
option.
@@ -276,8 +277,8 @@ option to
and use the
.B \%\-msafer
macros with
-.BR @g@troff .
-(enabled by default)
+.B @g@troff
+(enabled by default).
.TP
.B \-U
Unsafe mode. Reverts to the old unsafe behaviour.
@@ -329,10 +330,12 @@ This also applies to
.BR tbl ,
.BR pic ,
.BR eqn ,
+.BR grn ,
.BR refer ,
and
.BR soelim .
It does not apply to
+.BR grap ,
.BR grops ,
.BR grodvi ,
.BR grotty ,
@@ -386,6 +389,28 @@ Font file for font
.I F
of device
.IR name .
+.LP
+Note that on EBCDIC hosts, output devices
+.BR ascii ,
+.BR latin1 ,
+and
+.B utf8
+aren't available.
+Similarly,
+.B cp1047
+is not available on ASCII based operating systems.
+.SH EXAMPLE
+To print the man page
+.B foo.1
+to the standard output using the latin-1 output device and
+.B less
+as the pager, the following command can be used:
+.IP
+.B groff -mandoc -Tlatin1 foo.1 | less
+.PP
+Alternatively, you can say
+.IP
+.B groff -m mandoc -Tlatin1 foo.1 | less
.SH AUTHOR
James Clark <jjc@jclark.com>
.SH BUGS
@@ -394,7 +419,7 @@ Include a complete, self-contained example
that will allow the bug to be reproduced,
and say which version of groff you are using.
.SH COPYRIGHT
-Copyright \(co 1989, 1990, 1991, 1992, 1999 Free Software Foundation, Inc.
+Copyright \(co 1989-2000 Free Software Foundation, Inc.
.LP
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
@@ -412,19 +437,31 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.SH AVAILABILITY
The most recent released version of groff is always available for
anonymous ftp from ftp.gnu.org in the directory gnu/groff.
+.LP
+.B groff
+only supports the freely available
+.B grap
+implementation written by Ted Faber <faber@lunabase.org>.
+The actual version can be found at
+.IP
+\%http://www.lunabase.org/~faber/Vault/software/grap/
.SH "SEE ALSO"
.BR grog (@MAN1EXT@),
.BR @g@troff (@MAN1EXT@),
.BR @g@tbl (@MAN1EXT@),
.BR @g@pic (@MAN1EXT@),
.BR @g@eqn (@MAN1EXT@),
-.BR @g@soelim (@MAN1EXT@) ,
+.BR @g@grn (@MAN1EXT@),
+.BR grap (1),
+.BR @g@soelim (@MAN1EXT@),
.BR @g@refer (@MAN1EXT@),
.BR grops (@MAN1EXT@),
.BR grodvi (@MAN1EXT@),
.BR grotty (@MAN1EXT@),
+.BR grolj4 (@MAN1EXT@),
+.BR grolbp (@MAN1EXT@),
.BR grohtml (@MAN1EXT@),
-.BR grohtml (@MAN1EXT@),
+.BR gxditview (@MAN1EXT@),
.BR groff_font (@MAN5EXT@),
.BR groff_out (@MAN5EXT@),
.BR groff_man (@MAN7EXT@),
diff --git a/contrib/groff/grops/grops.man b/contrib/groff/grops/grops.man
index d93aa8e95fb9..aa2e9e23d277 100644
--- a/contrib/groff/grops/grops.man
+++ b/contrib/groff/grops/grops.man
@@ -1,5 +1,6 @@
.ig \"-*- nroff -*-
-Copyright (C) 1989-1995 Free Software Foundation, Inc.
+$FreeBSD$
+Copyright (C) 1989-2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -26,20 +27,27 @@ the original English.
.SH NAME
grops \- PostScript driver for groff
.SH SYNOPSIS
+.nr a \n(.j
+.ad l
+.nr i \n(.i
+.in +\w'\fBgrops 'u
+.ti \niu
.B grops
-[
-.B \-glmv
-] [
-.BI \-b n
-] [
-.BI \-c n
-] [
-.BI \-w n
-] [
-.BI \-F dir
-] [
-.IR files \|.\|.\|.
-]
+.de OP
+.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
+.el .RB "[\ " "\\$1" "\ ]"
+..
+.OP \-glmv
+.OP \-b n
+.OP \-c n
+.OP \-w n
+.OP \-F dir
+.RI "[\ " files\|.\|.\|. "\ ]"
+.br
+.ad \na
+.PP
+It is possible to have whitespace between a command line option and its
+parameter.
.SH DESCRIPTION
.B grops
translates the output of GNU
@@ -524,10 +532,8 @@ Conventions and contains a
.B %%BoundingBox
comment, then the bounding box can be automatically
extracted from within groff by using the
-.B sy
-request to run the
.B psbb
-command.
+request.
.RS
.LP
The
@@ -828,7 +834,7 @@ Macros to undo the effect of
.BI /tmp/grops XXXXXX
Temporary file.
.SH "SEE ALSO"
-.\" .BR afmtodit (@MAN1EXT@),
+.BR afmtodit (@MAN1EXT@),
.BR groff (@MAN1EXT@),
.BR @g@troff (@MAN1EXT@),
.BR psbb (@MAN1EXT@),
diff --git a/contrib/groff/grotty/grotty.man b/contrib/groff/grotty/grotty.man
index 4a109ced1034..00692404d91b 100644
--- a/contrib/groff/grotty/grotty.man
+++ b/contrib/groff/grotty/grotty.man
@@ -1,5 +1,6 @@
.ig \"-*- nroff -*-
-Copyright (C) 1989-1995 Free Software Foundation, Inc.
+$FreeBSD$
+Copyright (C) 1989-2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -28,6 +29,10 @@ grotty \- groff driver for typewriter-like devices
] [
.IR files \|.\|.\|.
]
+.PP
+It is possible to have whitespace between the
+.B \-F
+option and its parameter.
.SH DESCRIPTION
.B grotty
translates the output of GNU
@@ -40,10 +45,13 @@ should invoked by using the
command
with a
.BR \-Tascii ,
-.B \-Tkoi8-r
-or
+.BR \-Tkoi8-r ,
.B \-Tlatin1
-option.
+or
+.B \-Tutf8
+option on ASCII based systems, and with
+.B \-Tcp1047
+on EBCDIC based hosts.
If no files are given,
.B grotty
will read the standard input.
@@ -120,9 +128,11 @@ for font and device description files;
.I name
is the name of the device, usually
.BR ascii ,
-.B koi8-r
+.BR koi8-r ,
+.BR latin1 ,
+.BR utf8 ,
or
-.BR latin1 .
+.BR cp1047 .
.TP
.B \-h
Use horizontal tabs in the output.
@@ -169,16 +179,64 @@ characters.
Print the version number.
.SH FILES
.TP
-.B @FONTDIR@/dev\fIname\fB/DESC
+.B @FONTDIR@/devascii/DESC
Device description file for
-.I name
+.B ascii
device.
.TP
-.BI @FONTDIR@/dev\fIname\fB/ F
+.BI @FONTDIR@/devascii/ F
Font description file for font
.I F
of
-.I name
+.B ascii
+device.
+.TP
+.B @FONTDIR@/devkoi8-r/DESC
+Device description file for
+.B koi8-r
+device.
+.TP
+.BI @FONTDIR@/devkoi8-r/ F
+Font description file for font
+.I F
+of
+.B koi8-r
+device.
+.TP
+.B @FONTDIR@/devlatin1/DESC
+Device description file for
+.B latin1
+device.
+.TP
+.BI @FONTDIR@/devlatin1/ F
+Font description file for font
+.I F
+of
+.B latin1
+device.
+.TP
+.B @FONTDIR@/devutf8/DESC
+Device description file for
+.B utf8
+device.
+.TP
+.BI @FONTDIR@/devutf8/ F
+Font description file for font
+.I F
+of
+.B utf8
+device.
+.TP
+.B @FONTDIR@/devcp1047/DESC
+Device description file for
+.B cp1047
+device.
+.TP
+.BI @FONTDIR@/devcp1047/ F
+Font description file for font
+.I F
+of
+.B cp1047
device.
.TP
.B @MACRODIR@/tmac.tty
@@ -188,6 +246,10 @@ Macros for use with
.B @MACRODIR@/tmac.tty-char
Additional klugey character definitions for use with
.BR grotty .
+.LP
+Note that on EBCDIC hosts, only files for the
+.B cp1047
+device will be installed.
.SH BUGS
.LP
.B grotty
@@ -209,4 +271,5 @@ cannot be printed.
.BR groff_font (@MAN5EXT@),
.BR groff_char (@MAN7EXT@),
.BR ul (1),
-.BR more (1)
+.BR more (1),
+.BR less (1)
diff --git a/contrib/groff/libgroff/font.cc b/contrib/groff/libgroff/font.cc
index e27b705e0bac..7e75c7b58301 100644
--- a/contrib/groff/libgroff/font.cc
+++ b/contrib/groff/libgroff/font.cc
@@ -43,6 +43,7 @@ struct font_char_metric {
int pre_math_space;
int italic_correction;
int subscript_correction;
+ char *special_device_coding;
};
struct font_kern_list {
@@ -82,7 +83,7 @@ struct text_file {
};
text_file::text_file(FILE *p, char *s)
-: lineno(0), buf(0), size(0), skip_comments(1), fp(p), path(s)
+: fp(p), path(s), lineno(0), size(0), skip_comments(1), buf(0)
{
}
@@ -149,8 +150,8 @@ void text_file::error(const char *format,
/* font functions */
font::font(const char *s)
-: special(0), ligatures(0), kern_hash_table(0), space_width(0),
- ch(0), ch_used(0), ch_size(0), ch_index(0), nindices(0), widths_cache(0)
+: ligatures(0), kern_hash_table(0), space_width(0), ch_index(0), nindices(0),
+ ch(0), ch_used(0), ch_size(0), special(0), widths_cache(0)
{
name = new char[strlen(s) + 1];
strcpy(name, s);
@@ -365,6 +366,12 @@ const char *font::get_internal_name()
return internalname;
}
+const char *font::get_special_device_encoding(int c)
+{
+ assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+ return( ch[ch_index[c]].special_device_coding );
+}
+
void font::alloc_ch_index(int index)
{
if (nindices == 0) {
@@ -470,7 +477,7 @@ static char *trim_arg(char *p)
return p;
}
-// If the font can't be found, then if not_found is NULL it will be set
+// If the font can't be found, then if not_found is non-NULL, it will be set
// to 1 otherwise a message will be printed.
int font::load(int *not_found)
@@ -669,6 +676,20 @@ int font::load(int *not_found)
t.error("bad code `%1' for character `%2'", p, nm);
return 0;
}
+
+ p = strtok(0, WS);
+ if ((p == NULL) || (strcmp(p, "--") == 0)) {
+ metric.special_device_coding = NULL;
+ } else {
+ char *name=(char *)malloc(strlen(p)+1);
+
+ if (name == NULL) {
+ fatal("malloc failed while reading character encoding");
+ }
+ strcpy(name, p);
+ metric.special_device_coding = name;
+ }
+
if (strcmp(nm, "---") == 0) {
last_index = number_to_index(metric.code);
add_entry(last_index, metric);
@@ -756,6 +777,12 @@ int font::load_desc()
else if (strcmp("tcommand", p) == 0) {
tcommand = 1;
}
+ else if (strcmp("pass_filenames", p) == 0) {
+ pass_filenames = 1;
+ }
+ else if (strcmp("use_charnames_in_special", p) == 0) {
+ use_charnames_in_special = 1;
+ }
else if (strcmp("family", p) == 0) {
p = strtok(0, WS);
if (!p) {
diff --git a/contrib/groff/libgroff/illegal.cc b/contrib/groff/libgroff/illegal.cc
index ca9e0888e37c..6ab2a50090d4 100644
--- a/contrib/groff/libgroff/illegal.cc
+++ b/contrib/groff/libgroff/illegal.cc
@@ -1,8 +1,11 @@
+/* $FreeBSD$ */
+
#include "lib.h"
// Table of illegal input characters.
char illegal_char_table[256]= {
+#ifndef IS_EBCDIC_HOST
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19,4 +22,22 @@ char illegal_char_table[256]= {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#else
+ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1,
+ 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#endif
};
diff --git a/contrib/groff/man/groff_out.man b/contrib/groff/man/groff_out.man
index 225d8b249481..ee9c99cf87b0 100644
--- a/contrib/groff/man/groff_out.man
+++ b/contrib/groff/man/groff_out.man
@@ -1,6 +1,7 @@
'\" e
-.ig \"-*- nroff -*-
-Copyright (C) 1989-1999 Free Software Foundation, Inc.
+.\" The above line should force the use of eqn as a preprocessor
+.ig
+Copyright (C) 1989-2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -233,3 +234,7 @@ should be treated like the part of the line following the
command.
.SH "SEE ALSO"
.BR groff_font (@MAN5EXT@)
+.\"
+.\" Local Variables:
+.\" mode: nroff
+.\" End:
diff --git a/contrib/groff/nroff/nroff.man b/contrib/groff/nroff/nroff.man
index d8d981626ddf..e33feb94dccd 100644
--- a/contrib/groff/nroff/nroff.man
+++ b/contrib/groff/nroff/nroff.man
@@ -1,5 +1,5 @@
.ig \"-*- nroff -*-
-Copyright (C) 1989-1999 Free Software Foundation, Inc.
+Copyright (C) 1989-2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -23,37 +23,28 @@ the original English.
.SH NAME
@g@nroff \- emulate nroff command with groff
.SH SYNOPSIS
+.nr a \n(.j
+.ad l
+.nr i \n(.i
+.in +\w'\fB@g@nroff 'u
+.ti \niu
.B @g@nroff
-[
-.B \-h
-]
-[
-.B \-i
-]
-[
-.BI \-m name
-]
-[
-.BI \-n num
-]
-[
-.BI \-o list
-]
-[
-.BI \-p
-]
-[
-.BI \-r cn
-]
-[
-.BI \-t
-]
-[
-.BI \-T name
-]
-[
-.I file\|.\|.\|.
-]
+.de OP
+.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
+.el .RB "[\ " "\\$1" "\ ]"
+..
+.OP \-h
+.OP \-i
+.OP \-m name
+.OP \-n num
+.OP \-o list
+.OP \-p
+.OP \-r cn
+.OP \-t
+.OP \-T name
+.RI "[\ " file\|.\|.\|. "\ ]"
+.br
+.ad \na
.SH DESCRIPTION
The
.B @g@nroff
@@ -63,11 +54,12 @@ command using groff.
The
.B \-T
option with an argument other than
-.B ascii
-and
-.B latin1
-and
-.B koi8-r
+.BR ascii ,
+.BR latin1 ,
+.BR koi8-r ,
+.BR utf8 ,
+or
+.B cp1047
will be ignored.
The
.B \-h
@@ -80,11 +72,9 @@ The
.BR \-i ,
.BR \-n ,
.BR \-m ,
-.BR \-p ,
-.BR \-o ,
-.B \-r
+.B \-o
and
-.B \-t
+.B \-r
options have the effect described in
.BR @g@troff (@MAN1EXT@).
In addition
@@ -95,12 +85,21 @@ silently ignores options of
or
.BR \-s .
Options
+.BR \-p ,
+.BR \-t ,
.B \-S
(safer) and
.B \-U
-(unsafe) are passed to groff.
+(unsafe) are passed to
+.BR groff .
.B \-S
is passed by default.
+.SH NOTES
+This shell script is basically intended for use with
+.BR man (1),
+so warnings are suppressed.
+nroff-style character definitions (in the file tmac.tty-char) are also
+loaded to emulate unrepresentable glyphs.
.SH "SEE ALSO"
.BR groff (@MAN1EXT@),
.BR @g@troff (@MAN1EXT@),
diff --git a/contrib/groff/nroff/nroff.sh b/contrib/groff/nroff/nroff.sh
index 12f3fd16a2c1..d6586572727a 100755
--- a/contrib/groff/nroff/nroff.sh
+++ b/contrib/groff/nroff/nroff.sh
@@ -4,72 +4,83 @@
prog="$0"
# Default device.
-locale=${LC_CTYPE:-$LANG}
-if test `expr "$locale" : ".*\.ISO_8859-1"` -gt 0
-then
- T=-Tlatin1
-else
-if test `expr "$locale" : ".*\.KOI8-R"` -gt 0
-then
- T=-Tkoi8-r
-else
- T=-Tascii
-fi
-fi
+# First try the "locale charmap" command, because it's most reliable.
+# On systems where it doesn't exist, look at the environment variables.
+case "`#locale charmap 2>/dev/null`" in
+ UTF-8)
+ T=-Tutf8 ;;
+ ISO-8859-1)
+ T=-Tlatin1 ;;
+ IBM-1047)
+ T=-Tcp1047 ;;
+ *)
+ case "${LC_ALL-${LC_CTYPE-${LANG}}}" in
+ *.UTF-8)
+ T=-Tutf8 ;;
+ iso_8859_1 | *.ISO-8859-1 | *.ISO_8859-1)
+ T=-Tlatin1 ;;
+ *.IBM-1047)
+ T=-Tcp1047 ;;
+ *.KOI8-R)
+ T=-Tkoi8-r ;;
+ *)
+ case "$LESSCHARSET" in
+ utf-8)
+ T=-Tutf8 ;;
+ latin1)
+ T=-Tlatin1 ;;
+ cp1047)
+ T=-Tcp1047 ;;
+ *)
+ T=-Tascii ;;
+ esac ;;
+ esac ;;
+esac
opts=
safer=-S
-for i
-do
- case $1 in
- -h)
- opts="$opts -P-h"
- ;;
- -[eq]|-s*)
- # ignore these options
- ;;
- -[mrnoT])
- echo "$prog: option $1 requires an argument" >&2
- exit 1
- ;;
- -[iStp]|-[mrno]*)
- opts="$opts $1";
- ;;
+# `for i; do' doesn't work with some versions of sh
- -Tascii|-Tlatin1|-Tkoi8-r)
- T=$1
- ;;
- -T*)
- # ignore other devices
- ;;
- -S)
- # safer behaviour
- safer=-S
- ;;
- -U)
- # unsafe behaviour
- safer=-U
- ;;
- -u*)
- # Solaris 2.2 `man' uses -u0; ignore it,
- # since `less' and `more' can use the emboldening info.
- ;;
- --)
- shift
- break
- ;;
- -)
- break
- ;;
- -*)
- echo "$prog: invalid option $1" >&2
- exit 1
- ;;
- *)
- break
- ;;
- esac
- shift
+for i
+ do
+ case $1 in
+ -h)
+ opts="$opts -P-h" ;;
+ -[eq] | -s*)
+ # ignore these options
+ ;;
+ -[mrnoT])
+ echo "$prog: option $1 requires an argument" >&2
+ exit 1 ;;
+ -[itp] | -[mrno]*)
+ opts="$opts $1" ;;
+ -Tascii | -Tlatin1 | -Tkoi8-r | -Tutf8 | -Tcp1047)
+ T=$1 ;;
+ -T*)
+ # ignore other devices
+ ;;
+ -S)
+ # safer behaviour
+ safer=-S ;;
+ -U)
+ # unsafe behaviour
+ safer=-U ;;
+ -u*)
+ # Solaris 2.2 `man' uses -u0; ignore it,
+ # since `less' and `more' can use the emboldening info.
+ ;;
+ --)
+ shift
+ break ;;
+ -)
+ break ;;
+ -*)
+ echo "$prog: invalid option $1" >&2
+ exit 1 ;;
+ *)
+ break ;;
+ esac
+ shift
done
# This shell script is intended for use with man, so warnings are
diff --git a/contrib/groff/src/devices/grotty/grotty.man b/contrib/groff/src/devices/grotty/grotty.man
index 4a109ced1034..00692404d91b 100644
--- a/contrib/groff/src/devices/grotty/grotty.man
+++ b/contrib/groff/src/devices/grotty/grotty.man
@@ -1,5 +1,6 @@
.ig \"-*- nroff -*-
-Copyright (C) 1989-1995 Free Software Foundation, Inc.
+$FreeBSD$
+Copyright (C) 1989-2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -28,6 +29,10 @@ grotty \- groff driver for typewriter-like devices
] [
.IR files \|.\|.\|.
]
+.PP
+It is possible to have whitespace between the
+.B \-F
+option and its parameter.
.SH DESCRIPTION
.B grotty
translates the output of GNU
@@ -40,10 +45,13 @@ should invoked by using the
command
with a
.BR \-Tascii ,
-.B \-Tkoi8-r
-or
+.BR \-Tkoi8-r ,
.B \-Tlatin1
-option.
+or
+.B \-Tutf8
+option on ASCII based systems, and with
+.B \-Tcp1047
+on EBCDIC based hosts.
If no files are given,
.B grotty
will read the standard input.
@@ -120,9 +128,11 @@ for font and device description files;
.I name
is the name of the device, usually
.BR ascii ,
-.B koi8-r
+.BR koi8-r ,
+.BR latin1 ,
+.BR utf8 ,
or
-.BR latin1 .
+.BR cp1047 .
.TP
.B \-h
Use horizontal tabs in the output.
@@ -169,16 +179,64 @@ characters.
Print the version number.
.SH FILES
.TP
-.B @FONTDIR@/dev\fIname\fB/DESC
+.B @FONTDIR@/devascii/DESC
Device description file for
-.I name
+.B ascii
device.
.TP
-.BI @FONTDIR@/dev\fIname\fB/ F
+.BI @FONTDIR@/devascii/ F
Font description file for font
.I F
of
-.I name
+.B ascii
+device.
+.TP
+.B @FONTDIR@/devkoi8-r/DESC
+Device description file for
+.B koi8-r
+device.
+.TP
+.BI @FONTDIR@/devkoi8-r/ F
+Font description file for font
+.I F
+of
+.B koi8-r
+device.
+.TP
+.B @FONTDIR@/devlatin1/DESC
+Device description file for
+.B latin1
+device.
+.TP
+.BI @FONTDIR@/devlatin1/ F
+Font description file for font
+.I F
+of
+.B latin1
+device.
+.TP
+.B @FONTDIR@/devutf8/DESC
+Device description file for
+.B utf8
+device.
+.TP
+.BI @FONTDIR@/devutf8/ F
+Font description file for font
+.I F
+of
+.B utf8
+device.
+.TP
+.B @FONTDIR@/devcp1047/DESC
+Device description file for
+.B cp1047
+device.
+.TP
+.BI @FONTDIR@/devcp1047/ F
+Font description file for font
+.I F
+of
+.B cp1047
device.
.TP
.B @MACRODIR@/tmac.tty
@@ -188,6 +246,10 @@ Macros for use with
.B @MACRODIR@/tmac.tty-char
Additional klugey character definitions for use with
.BR grotty .
+.LP
+Note that on EBCDIC hosts, only files for the
+.B cp1047
+device will be installed.
.SH BUGS
.LP
.B grotty
@@ -209,4 +271,5 @@ cannot be printed.
.BR groff_font (@MAN5EXT@),
.BR groff_char (@MAN7EXT@),
.BR ul (1),
-.BR more (1)
+.BR more (1),
+.BR less (1)
diff --git a/contrib/groff/src/libs/libgroff/illegal.cc b/contrib/groff/src/libs/libgroff/illegal.cc
index ca9e0888e37c..6ab2a50090d4 100644
--- a/contrib/groff/src/libs/libgroff/illegal.cc
+++ b/contrib/groff/src/libs/libgroff/illegal.cc
@@ -1,8 +1,11 @@
+/* $FreeBSD$ */
+
#include "lib.h"
// Table of illegal input characters.
char illegal_char_table[256]= {
+#ifndef IS_EBCDIC_HOST
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -19,4 +22,22 @@ char illegal_char_table[256]= {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#else
+ 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1,
+ 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#endif
};
diff --git a/contrib/groff/src/preproc/eqn/neqn.sh b/contrib/groff/src/preproc/eqn/neqn.sh
index f33b68e3b350..1ae98e8fa8b8 100644
--- a/contrib/groff/src/preproc/eqn/neqn.sh
+++ b/contrib/groff/src/preproc/eqn/neqn.sh
@@ -1,6 +1,7 @@
#!/bin/sh
# Provision of this shell script should not be taken to imply that use of
-# GNU eqn with groff -Tascii|-Tlatin1 is supported.
+# GNU eqn with groff -Tascii|-Tlatin1|-Tutf8|-Tcp1047 is supported.
+# $FreeBSD$
# Default device.
locale=${LC_CTYPE:-$LANG}
diff --git a/contrib/groff/src/roff/groff/groff.man b/contrib/groff/src/roff/groff/groff.man
index 1f95a779f2d7..6244404fe29f 100644
--- a/contrib/groff/src/roff/groff/groff.man
+++ b/contrib/groff/src/roff/groff/groff.man
@@ -1,5 +1,5 @@
.ig \"-*- nroff -*-
-Copyright (C) 1999 Free Software Foundation, Inc.
+Copyright (C) 1989-2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -34,55 +34,37 @@ the original English.
.SH NAME
groff \- front end for the groff document formatting system
.SH SYNOPSIS
+.nr a \n(.j
+.ad l
+.nr i \n(.i
+.in +\w'\fBgroff 'u
+.ti \niu
.B groff
-[
-.B \-abehilpstvzCENRSUVXZ
-]
-[
-.BI \-w name
-]
-[
-.BI \-W name
-]
-[
-.BI \-m name
-]
-[
-.BI \-F dir
-]
-[
-.BI \-I dir
-]
-[
-.BI \-T dev
-]
-[
-.BI \-f fam
-]
-[
-.BI \-M dir
-]
-[
-.BI \-d cs
-]
-[
-.BI \-r cn
-]
-[
-.BI \-n num
-]
-[
-.BI \-o list
-]
-[
-.BI \-P arg
-]
-[
-.BI \-L arg
-]
-[
-.IR files \|.\|.\|.\|
-]
+.de OP
+.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
+.el .RB "[\ " "\\$1" "\ ]"
+..
+.OP \-abeghilpstvzCEGNRSUVXZ
+.OP \-w name
+.OP \-W name
+.OP \-m name
+.OP \-F dir
+.OP \-I dir
+.OP \-T dev
+.OP \-f fam
+.OP \-M dir
+.OP \-d cs
+.OP \-r cn
+.OP \-n num
+.OP \-o list
+.OP \-P arg
+.OP \-L arg
+.RI "[\ " files\|.\|.\|. "\ ]"
+.br
+.ad \na
+.PP
+It is possible to have whitespace between a command line option and its
+parameter.
.SH DESCRIPTION
.B groff
is a front-end to the groff document formatting system.
@@ -108,13 +90,24 @@ For a 100dpi X11 previewer.
For typewriter-like devices.
.TP
.B latin1
-For typewriter-like devices using the ISO Latin-1 character set.
+For typewriter-like devices using the ISO Latin-1 (ISO 8859-1) character set.
+.TP
+.B koi8-r
+For typewriter-like devices using the Russian KOI8-R character set.
+.TP
+.B utf8
+For typewriter-like devices using the Unicode (ISO 10646) character set with
+UTF-8 encoding.
+.TP
+.B cp1047
+For typewriter-like devices which use the EBCDIC code page IBM cp1047
+(e.g. OS/390 Unix).
.TP
.B lj4
For an HP LaserJet4-compatible (or other PCL5-compatible) printer.
.TP
-.B koi8-r
-For typewriter-like devices using the russian KOI8-R character set.
+.B lbp
+For Canon CAPSL printers (LBP-4 and LBP-8 series laser printers).
.TP
.B html
To produce HTML output.
@@ -131,6 +124,8 @@ The default device is
It can optionally preprocess with any of
.BR @g@pic ,
.BR @g@eqn ,
+.BR @g@grn ,
+.BR grap ,
.BR @g@tbl ,
.BR @g@refer ,
or
@@ -157,6 +152,12 @@ Preprocess with @g@eqn.
.B \-t
Preprocess with @g@tbl.
.TP
+.B \-g
+Preprocess with @g@grn.
+.TP
+.B \-G
+Preprocess with grap.
+.TP
.B \-p
Preprocess with @g@pic.
.TP
@@ -165,7 +166,7 @@ Preprocess with @g@soelim.
.TP
.BI \-I dir
This option is as described in
-.BR @g@soelim (@MAN1EXT@) .
+.BR @g@soelim (@MAN1EXT@).
This option implies the
.B \-s
option.
@@ -276,8 +277,8 @@ option to
and use the
.B \%\-msafer
macros with
-.BR @g@troff .
-(enabled by default)
+.B @g@troff
+(enabled by default).
.TP
.B \-U
Unsafe mode. Reverts to the old unsafe behaviour.
@@ -329,10 +330,12 @@ This also applies to
.BR tbl ,
.BR pic ,
.BR eqn ,
+.BR grn ,
.BR refer ,
and
.BR soelim .
It does not apply to
+.BR grap ,
.BR grops ,
.BR grodvi ,
.BR grotty ,
@@ -386,6 +389,28 @@ Font file for font
.I F
of device
.IR name .
+.LP
+Note that on EBCDIC hosts, output devices
+.BR ascii ,
+.BR latin1 ,
+and
+.B utf8
+aren't available.
+Similarly,
+.B cp1047
+is not available on ASCII based operating systems.
+.SH EXAMPLE
+To print the man page
+.B foo.1
+to the standard output using the latin-1 output device and
+.B less
+as the pager, the following command can be used:
+.IP
+.B groff -mandoc -Tlatin1 foo.1 | less
+.PP
+Alternatively, you can say
+.IP
+.B groff -m mandoc -Tlatin1 foo.1 | less
.SH AUTHOR
James Clark <jjc@jclark.com>
.SH BUGS
@@ -394,7 +419,7 @@ Include a complete, self-contained example
that will allow the bug to be reproduced,
and say which version of groff you are using.
.SH COPYRIGHT
-Copyright \(co 1989, 1990, 1991, 1992, 1999 Free Software Foundation, Inc.
+Copyright \(co 1989-2000 Free Software Foundation, Inc.
.LP
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
@@ -412,19 +437,31 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.SH AVAILABILITY
The most recent released version of groff is always available for
anonymous ftp from ftp.gnu.org in the directory gnu/groff.
+.LP
+.B groff
+only supports the freely available
+.B grap
+implementation written by Ted Faber <faber@lunabase.org>.
+The actual version can be found at
+.IP
+\%http://www.lunabase.org/~faber/Vault/software/grap/
.SH "SEE ALSO"
.BR grog (@MAN1EXT@),
.BR @g@troff (@MAN1EXT@),
.BR @g@tbl (@MAN1EXT@),
.BR @g@pic (@MAN1EXT@),
.BR @g@eqn (@MAN1EXT@),
-.BR @g@soelim (@MAN1EXT@) ,
+.BR @g@grn (@MAN1EXT@),
+.BR grap (1),
+.BR @g@soelim (@MAN1EXT@),
.BR @g@refer (@MAN1EXT@),
.BR grops (@MAN1EXT@),
.BR grodvi (@MAN1EXT@),
.BR grotty (@MAN1EXT@),
+.BR grolj4 (@MAN1EXT@),
+.BR grolbp (@MAN1EXT@),
.BR grohtml (@MAN1EXT@),
-.BR grohtml (@MAN1EXT@),
+.BR gxditview (@MAN1EXT@),
.BR groff_font (@MAN5EXT@),
.BR groff_out (@MAN5EXT@),
.BR groff_man (@MAN7EXT@),
diff --git a/contrib/groff/src/roff/nroff/nroff.man b/contrib/groff/src/roff/nroff/nroff.man
index d8d981626ddf..e33feb94dccd 100644
--- a/contrib/groff/src/roff/nroff/nroff.man
+++ b/contrib/groff/src/roff/nroff/nroff.man
@@ -1,5 +1,5 @@
.ig \"-*- nroff -*-
-Copyright (C) 1989-1999 Free Software Foundation, Inc.
+Copyright (C) 1989-2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -23,37 +23,28 @@ the original English.
.SH NAME
@g@nroff \- emulate nroff command with groff
.SH SYNOPSIS
+.nr a \n(.j
+.ad l
+.nr i \n(.i
+.in +\w'\fB@g@nroff 'u
+.ti \niu
.B @g@nroff
-[
-.B \-h
-]
-[
-.B \-i
-]
-[
-.BI \-m name
-]
-[
-.BI \-n num
-]
-[
-.BI \-o list
-]
-[
-.BI \-p
-]
-[
-.BI \-r cn
-]
-[
-.BI \-t
-]
-[
-.BI \-T name
-]
-[
-.I file\|.\|.\|.
-]
+.de OP
+.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
+.el .RB "[\ " "\\$1" "\ ]"
+..
+.OP \-h
+.OP \-i
+.OP \-m name
+.OP \-n num
+.OP \-o list
+.OP \-p
+.OP \-r cn
+.OP \-t
+.OP \-T name
+.RI "[\ " file\|.\|.\|. "\ ]"
+.br
+.ad \na
.SH DESCRIPTION
The
.B @g@nroff
@@ -63,11 +54,12 @@ command using groff.
The
.B \-T
option with an argument other than
-.B ascii
-and
-.B latin1
-and
-.B koi8-r
+.BR ascii ,
+.BR latin1 ,
+.BR koi8-r ,
+.BR utf8 ,
+or
+.B cp1047
will be ignored.
The
.B \-h
@@ -80,11 +72,9 @@ The
.BR \-i ,
.BR \-n ,
.BR \-m ,
-.BR \-p ,
-.BR \-o ,
-.B \-r
+.B \-o
and
-.B \-t
+.B \-r
options have the effect described in
.BR @g@troff (@MAN1EXT@).
In addition
@@ -95,12 +85,21 @@ silently ignores options of
or
.BR \-s .
Options
+.BR \-p ,
+.BR \-t ,
.B \-S
(safer) and
.B \-U
-(unsafe) are passed to groff.
+(unsafe) are passed to
+.BR groff .
.B \-S
is passed by default.
+.SH NOTES
+This shell script is basically intended for use with
+.BR man (1),
+so warnings are suppressed.
+nroff-style character definitions (in the file tmac.tty-char) are also
+loaded to emulate unrepresentable glyphs.
.SH "SEE ALSO"
.BR groff (@MAN1EXT@),
.BR @g@troff (@MAN1EXT@),
diff --git a/contrib/groff/src/roff/nroff/nroff.sh b/contrib/groff/src/roff/nroff/nroff.sh
index 12f3fd16a2c1..d6586572727a 100755
--- a/contrib/groff/src/roff/nroff/nroff.sh
+++ b/contrib/groff/src/roff/nroff/nroff.sh
@@ -4,72 +4,83 @@
prog="$0"
# Default device.
-locale=${LC_CTYPE:-$LANG}
-if test `expr "$locale" : ".*\.ISO_8859-1"` -gt 0
-then
- T=-Tlatin1
-else
-if test `expr "$locale" : ".*\.KOI8-R"` -gt 0
-then
- T=-Tkoi8-r
-else
- T=-Tascii
-fi
-fi
+# First try the "locale charmap" command, because it's most reliable.
+# On systems where it doesn't exist, look at the environment variables.
+case "`#locale charmap 2>/dev/null`" in
+ UTF-8)
+ T=-Tutf8 ;;
+ ISO-8859-1)
+ T=-Tlatin1 ;;
+ IBM-1047)
+ T=-Tcp1047 ;;
+ *)
+ case "${LC_ALL-${LC_CTYPE-${LANG}}}" in
+ *.UTF-8)
+ T=-Tutf8 ;;
+ iso_8859_1 | *.ISO-8859-1 | *.ISO_8859-1)
+ T=-Tlatin1 ;;
+ *.IBM-1047)
+ T=-Tcp1047 ;;
+ *.KOI8-R)
+ T=-Tkoi8-r ;;
+ *)
+ case "$LESSCHARSET" in
+ utf-8)
+ T=-Tutf8 ;;
+ latin1)
+ T=-Tlatin1 ;;
+ cp1047)
+ T=-Tcp1047 ;;
+ *)
+ T=-Tascii ;;
+ esac ;;
+ esac ;;
+esac
opts=
safer=-S
-for i
-do
- case $1 in
- -h)
- opts="$opts -P-h"
- ;;
- -[eq]|-s*)
- # ignore these options
- ;;
- -[mrnoT])
- echo "$prog: option $1 requires an argument" >&2
- exit 1
- ;;
- -[iStp]|-[mrno]*)
- opts="$opts $1";
- ;;
+# `for i; do' doesn't work with some versions of sh
- -Tascii|-Tlatin1|-Tkoi8-r)
- T=$1
- ;;
- -T*)
- # ignore other devices
- ;;
- -S)
- # safer behaviour
- safer=-S
- ;;
- -U)
- # unsafe behaviour
- safer=-U
- ;;
- -u*)
- # Solaris 2.2 `man' uses -u0; ignore it,
- # since `less' and `more' can use the emboldening info.
- ;;
- --)
- shift
- break
- ;;
- -)
- break
- ;;
- -*)
- echo "$prog: invalid option $1" >&2
- exit 1
- ;;
- *)
- break
- ;;
- esac
- shift
+for i
+ do
+ case $1 in
+ -h)
+ opts="$opts -P-h" ;;
+ -[eq] | -s*)
+ # ignore these options
+ ;;
+ -[mrnoT])
+ echo "$prog: option $1 requires an argument" >&2
+ exit 1 ;;
+ -[itp] | -[mrno]*)
+ opts="$opts $1" ;;
+ -Tascii | -Tlatin1 | -Tkoi8-r | -Tutf8 | -Tcp1047)
+ T=$1 ;;
+ -T*)
+ # ignore other devices
+ ;;
+ -S)
+ # safer behaviour
+ safer=-S ;;
+ -U)
+ # unsafe behaviour
+ safer=-U ;;
+ -u*)
+ # Solaris 2.2 `man' uses -u0; ignore it,
+ # since `less' and `more' can use the emboldening info.
+ ;;
+ --)
+ shift
+ break ;;
+ -)
+ break ;;
+ -*)
+ echo "$prog: invalid option $1" >&2
+ exit 1 ;;
+ *)
+ break ;;
+ esac
+ shift
done
# This shell script is intended for use with man, so warnings are
diff --git a/contrib/groff/tmac/eqnrc b/contrib/groff/tmac/eqnrc
index 2156c1504807..63bd03717f14 100644
--- a/contrib/groff/tmac/eqnrc
+++ b/contrib/groff/tmac/eqnrc
@@ -52,13 +52,14 @@ ifdef ps|X|html ! set draw_lines 1 !
ifdef ascii ! define n %1% !
ifdef latin1 ! define n %1% !
+ifdef utf8 ! define n %1% !
+ifdef cp1047 ! define n %1% !
ifdef koi8-r ! define n %1% !
ifdef n !
set nroff 1
!
undef X
-undef ps|X
+undef ps|X|html
undef n
-undef html
.EN
diff --git a/contrib/groff/tmac/tmac.tty b/contrib/groff/tmac/tmac.tty
index 2d21af2383fc..a4eee79f50b1 100644
--- a/contrib/groff/tmac/tmac.tty
+++ b/contrib/groff/tmac/tmac.tty
@@ -5,11 +5,12 @@
.\" Don't warn about non-existent fonts.
.warn \n[.warn]-(\n[.warn]/131072%2*131072)
.po 0
-.if !"\*[.T]"koi8-r" .if c\[char173] .shc \[char173]
+.if c\[shc] .shc \[shc]
.de tty-char
.if !c\\$1 .char \\$1 "\\$2
..
-.if c\(md .tr \(bu\(md
+.ie c\(pc .tr \(bu\(pc
+.el .if c\(md .tr \(bu\(md
.tty-char \(bu \z+o
.tty-char \(14 1/4
.tty-char \(12 1/2
diff --git a/contrib/groff/tmac/tmac.tty-char b/contrib/groff/tmac/tmac.tty-char
index e2770f22db07..f9bb80505e47 100644
--- a/contrib/groff/tmac/tmac.tty-char
+++ b/contrib/groff/tmac/tmac.tty-char
@@ -1,12 +1,14 @@
.\" This file defines standard troff characters and some groff characters for
-.\" use with -Tascii and -Tlatin1.
+.\" use with -Tascii, -Tlatin1, -Tutf8, and -Tcp1047.
.\"
.\" These definitions are chosen so that, as far as possible, they:
-.\" - work with both -Tascii and -Tlatin1.
+.\" - work with all of -Tascii, -Tlatin1, -Tutf8, and -Tcp1047.
.\" - work on devices that display only the last overstruck character
.\" as well as on devices that support overstriking
.\" - represent the character's graphical shape (not its meaning)
.\"
+.\" $FreeBSD$
+.\"
.nr _C \n(.C
.cp 0
.de tty-char
@@ -85,7 +87,9 @@
.tty-char \(OR v
.tty-char \(uA \z=^
.tty-char \(dA \z=v
-.if c\(md .tty-char \(a. \(md
+.if c\(md .tty-char \(pc \(md
+.if c\(pc .tty-char \(md \(pc
+.if c\(pc .tty-char \(a. \(pc
.tty-char \(Im I
.tty-char \(Re R
.tty-char \(/L \z/L
@@ -128,6 +132,7 @@
.tty-char \(S3 3
.tty-char \(ps 9|
.tty-char \(md .
+.tty-char \(pc .
.tty-char \(ac ,
.tty-char \(S1 1
.tty-char \(Om \z_o
@@ -195,4 +200,5 @@
.\"tty-char \(:y \ij
.tty-char \[arrowvertex] |
.cp \n(_C
-.if "\*[.T]"ascii" .do mso tmac.latin1
+.if !'\*(.T'cp1047' \
+. do mso tmac.latin1
diff --git a/contrib/groff/tmac/troffrc b/contrib/groff/tmac/troffrc
index 858d9159e929..0b3bdd6aa3de 100644
--- a/contrib/groff/tmac/troffrc
+++ b/contrib/groff/tmac/troffrc
@@ -14,22 +14,28 @@
.do ds troffrc!ascii tmac.tty
.do ds troffrc!latin1 tmac.tty
.do ds troffrc!koi8-r tmac.tty
+.do ds troffrc!utf8 tmac.tty
+.do ds troffrc!cp1047 tmac.tty
.do ds troffrc!lj4 tmac.lj4
-.do ds troffrc!html tmac.html
+.do ds troffrc!lbp tmac.lbp
+.do ds troffrc!html tmac.arkup
.do if d troffrc!\*[.T] \
. do mso \*[troffrc!\*[.T]]
.do rm troffrc!ps troffrc!Xps troffrc!dvi troffrc!X75 troffrc!X75-12 \
-troffrc!X100 troffrc!X100-12 troffrc!lj4 troffrc!html
+troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html
+.ie '\*(.T'cp1047' .do tr \[char65]
+.el \{\
.ie "\*[.T]"koi8-r" .do tr \[char154]
.el .do tr \[char160]
-.\" Set the hyphenation language to `us' unless we're using koi8-r (russian)
-.\" Load hyphenation patterns from `hyphen.us' (in the tmac directory).
+.\}
.ie "\*[.T]"koi8-r" \{\
.do hla us-ru
.do hpf locale/hyphen.us-ru
-. \}
+.\}
.el \{\
+.\" Set the hyphenation language to `us'.
.do hla us
+.\" Load hyphenation patterns from `hyphen.us' (in the tmac directory).
.do hpf hyphen.us
-. \}
+.\}
.\" Don't let blank lines creep in here.
diff --git a/contrib/groff/troff/troff.man b/contrib/groff/troff/troff.man
index 4b4fdea06f04..8c651edef61d 100644
--- a/contrib/groff/troff/troff.man
+++ b/contrib/groff/troff/troff.man
@@ -1,5 +1,5 @@
.ig \"-*- nroff -*-
-Copyright (C) 1989-1999 Free Software Foundation, Inc.
+Copyright (C) 1989-2000 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -36,7 +36,7 @@ the original English.
.\" The BSD man macros can't handle " in arguments to font change macros,
.\" so use \(ts instead of ".
.tr \(ts"
-.TH @G@TROFF 1 "@MDATE@" "Groff Version @VERSION@"
+.TH @G@TROFF @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
.SH NAME
@g@troff \- format documents
.SH SYNOPSIS
@@ -65,6 +65,9 @@ the original English.
.RI "[\ " files\|.\|.\|. "\ ]"
.br
.ad \na
+.PP
+It is possible to have whitespace between a command line option and its
+parameter.
.SH DESCRIPTION
This manual page describes the GNU version of
.BR troff ,
@@ -84,7 +87,7 @@ approximation of the typeset output.
Print a backtrace with each warning or error message. This backtrace
should help track down the cause of the error. The line numbers given
in the backtrace may not always be correct:
-.B troff 's
+.BR troff 's
idea of line numbers
gets confused by
.B as
@@ -145,9 +148,10 @@ as the default font family.
Read in the file
.BI tmac. name\fR.
Normally this will be searched for in @MACRODIR@.
-By default is used the
+By default, the
.I safer
-macro (reverted using -U ).
+macro is used (this can be reverted using
+.BR \-U ).
.TP
.B \-U
Unsafe option, avoids default use of
@@ -156,7 +160,9 @@ macro.
.TP
.B \-R
Don't load
-.BR troffrc .
+.B troffrc
+and
+.BR troffrc-end .
.TP
.BI \-n num
Number the first page
@@ -476,7 +482,7 @@ is a numeric expression with a default scale indicator of
.TQ
.BI \eV[ xxx ]
Interpolate the contents of the environment variable
-.I xxx ,
+.IR xxx ,
as returned by
.BR getenv (3).
.B \eV
@@ -880,6 +886,12 @@ sourced by
are interpreted.
.RE
.TP
+.BI .evc\ xx
+Copy the contents of environment
+.I xx
+to the current environment.
+No pushing or popping of environents will be done.
+.TP
.BI .fam\ xx
Set the current font family to
.IR xx .
@@ -1050,12 +1062,19 @@ If
.I n
is non-zero or missing, enable pairwise kerning, otherwise disable it.
.TP
+.BI .length\ xx\ string
+Compute the length of
+.I string
+and return it in the number register
+.I xx
+(which is not necessarily defined before).
+.TP
.BI .mso\ file
The same as the
.B so
request except that
.I file
-is searched for in the same way that
+is searched for in the same directories as
.BI tmac. name
is searched for when the
.BI \-m name
@@ -1095,8 +1114,25 @@ exists, append to it instead of truncating it.
Print the names and contents of all currently defined number registers
on stderr.
.TP
+.BI .psbb \ filename
+Get the bounding box of a PostScript image
+.IR filename .
+This file must conform to Adobe's Document Structuring Conventions; the
+command looks for a
+.B %%BoundingBox
+comment to extract the bounding box values.
+After a successful call, the coordinates (in PostScript units) of the lower
+left and upper right corner can be found in the registers
+.BR \en[llx] ,
+.BR \en[lly] ,
+.BR \en[urx] ,
+and
+.BR \en[ury] ,
+respectively.
+If some error has occurred, the four registers are set to zero.
+.TP
.BI .pso \ command
-This is behaves like the
+This behaves like the
.B so
request except that input comes from the standard output of
.IR command .
@@ -1223,6 +1259,25 @@ The styles command in the
file controls which font positions
(if any) are initially associated with styles rather than fonts.
.TP
+.BI .substring\ xx\ n1\ [ n2 ]
+Replace the string in register
+.I xx
+with the substring defined by the indices
+.I n1
+and
+.IR n2 .
+The first character in the string has index one.
+If
+.I n2
+is omitted, it is taken to be equal to the string's length. If the
+index value
+.I n1
+or
+.I n2
+is negative or zero, it will be counted from the end of the string,
+going backwards: The last character has index 0, the character before
+the last character has index -1, etc.
+.TP
.BI .tkf\ f\ s1\ n1\ s2\ n2
Enable track kerning for font
.IR f .
@@ -1394,7 +1449,7 @@ In Unix troff, the
contents of
.I filename
is immediately copied through to the output regardless of whether
-there is a current diversion; this behavior is so anomalous that it
+there is a current diversion; this behaviour is so anomalous that it
must be considered a bug.
.TP
.BI .ev\ xx
@@ -1436,7 +1491,7 @@ if the end of a sentence occurs at the end of a line in fill mode, then
both an inter-word space and a sentence space will be added;
if two spaces follow the end of a sentence in the middle of a line,
then the second space will be a sentence space.
-Note that the behavior of Unix troff will be exactly
+Note that the behaviour of Unix troff will be exactly
that exhibited by GNU troff if a second argument is never given to the
.B ss
request.
@@ -1642,6 +1697,21 @@ then
.B \en(.y
will contain
.BR 03 .
+.TP
+.B \en(.Y
+The revision number of groff.
+.TP
+.B \en[llx]
+.TQ
+.B \en[lly]
+.TQ
+.B \en[urx]
+.TQ
+.B \en[ury]
+These four registers are set by the
+.B \&.psbb
+request and contain the bounding box values (in PostScript units) of a given
+PostScript image.
.LP
The following registers are set by the
.B \ew
@@ -1679,7 +1749,32 @@ If greater than 0, the maximum number of objects on the input stack.
If less than or equal to 0, there is no limit on the number of objects
on the input stack. With no limit, recursion can continue until
virtual memory is exhausted.
+.TP
+.B \en[year]
+The current year.
+Note that the traditional
+.B troff
+number register
+.B \en(yr
+is the current year minus 1900.
.SS Miscellaneous
+.B @g@troff
+predefines a single (read/write) string-based register,
+.BR \e*(.T ,
+which contains the argument given to the
+.B -T
+command line option, namely the current output device (for example,
+.I latin1
+or
+.IR ascii ).
+Note that this is not the same as the (read-only) number register
+.B \en(.T
+which is defined to be\ 1 if
+.B troff
+is called with the
+.B -T
+command line option, and zero otherwise. This behaviour is different to
+Unix troff.
.LP
Fonts not listed in the
.SM DESC
@@ -2037,7 +2132,10 @@ after these.
.SH FILES
.Tp \w'@FONTDIR@/devname/DESC'u+3n
.B @MACRODIR@/troffrc
-Initialization file
+Initialization file (called before any other macro package).
+.TP
+.B @MACRODIR@/troffrc-end
+Initialization file (called after any other macro package).
.TP
.BI @MACRODIR@/tmac. name
Macro files
@@ -2052,14 +2150,18 @@ Font file for font
of device
.IR name .
.SH "SEE ALSO"
-.BR groff (@MAN1EXT@)
+.BR groff (@MAN1EXT@),
.BR @g@tbl (@MAN1EXT@),
.BR @g@pic (@MAN1EXT@),
.BR @g@eqn (@MAN1EXT@),
+.BR @g@refer (@MAN1EXT@),
+.BR @g@soelim (@MAN1EXT@),
+.BR @g@grn (@MAN1EXT@),
.BR grops (@MAN1EXT@),
.BR grodvi (@MAN1EXT@),
.BR grotty (@MAN1EXT@),
.BR grohtml (@MAN1EXT@),
+.BR grolj4 (@MAN1EXT@),
.BR groff_font (@MAN5EXT@),
.BR groff_out (@MAN5EXT@),
.BR groff_char (@MAN7EXT@)