summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwlemb <wlemb>2002-04-15 10:21:12 +0000
committerwlemb <wlemb>2002-04-15 10:21:12 +0000
commit89ae130621f74f74eb8744109a5f500f7deb01cf (patch)
treee0e0a9a93770bb06f94baac6d4431629387fcd76
parente9c0c7e398d4a279cf7078591f5036fe9fac6b96 (diff)
downloadgroff-89ae130621f74f74eb8744109a5f500f7deb01cf.tar.gz
Add new escape \F to switch font family.
* src/roff/troff/input.cc (token::next): Handle \F. * src/roff/troff/env.cc (environment::set_family): Handle `interrupted' flag. * NEWS, doc/groff.texinfo, man/groff_diff.man, man/groff.man: Document it. * tmac/doc.tmac (doc-tag-list): Use \Z to avoid stretching of spaces in tags. * tmac/Xps.tmac: Remove some redundant code. * tmac/doc-common, tmac/doc-ditroff, tmac/doc-nroff, tmac/doc.tmac, tmac/dvi.tmac, contrib/groffer/groffer.man, man/roff.man, man/groff_out.man, man/groff.man, man/groff_diff.man, src/roff/groff/groff.man: Replace \f[P] with \f[].
-rw-r--r--ChangeLog22
-rw-r--r--NEWS3
-rw-r--r--contrib/groffer/groffer.man26
-rw-r--r--doc/groff.texinfo57
-rw-r--r--man/groff.man67
-rw-r--r--man/groff_diff.man33
-rw-r--r--man/groff_out.man34
-rw-r--r--man/roff.man6
-rw-r--r--src/devices/grotty/grotty.man2
-rw-r--r--src/roff/groff/groff.man2
-rw-r--r--src/roff/troff/env.cc4
-rw-r--r--src/roff/troff/input.cc8
-rw-r--r--tmac/Xps.tmac8
-rw-r--r--tmac/doc-common16
-rw-r--r--tmac/doc-ditroff16
-rw-r--r--tmac/doc-nroff16
-rw-r--r--tmac/doc.tmac66
-rw-r--r--tmac/dvi.tmac4
-rw-r--r--tmac/groff_www.man2
-rw-r--r--tmac/www.tmac8
20 files changed, 244 insertions, 156 deletions
diff --git a/ChangeLog b/ChangeLog
index fee1f1cf..19738a6a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2002-04-15 Werner LEMBERG <wl@gnu.org>
+
+ Add new escape \F to switch font family.
+
+ * src/roff/troff/input.cc (token::next): Handle \F.
+ * src/roff/troff/env.cc (environment::set_family): Handle
+ `interrupted' flag.
+ * NEWS, doc/groff.texinfo, man/groff_diff.man, man/groff.man:
+ Document it.
+
+2002-04-14 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc.tmac (doc-tag-list): Use \Z to avoid stretching of
+ spaces in tags.
+
2002-04-13 Werner LEMBERG <wl@gnu.org>
Implement \f[] as an alternative to \fP. Change \mP and \MP to
@@ -22,6 +37,13 @@
doc/homepage.ms, src/devices/grotty/grotty.man, tmac/groff_www.man:
Updated.
+ * tmac/Xps.tmac: Remove some redundant code.
+
+ * tmac/doc-common, tmac/doc-ditroff, tmac/doc-nroff, tmac/doc.tmac,
+ tmac/dvi.tmac, contrib/groffer/groffer.man, man/roff.man,
+ man/groff_out.man, man/groff.man, man/groff_diff.man,
+ src/roff/groff/groff.man: Replace \f[P] with \f[].
+
2002-04-13 Bernd Warken <bwarken@mayn.de>
* src/include/printer.h, src/libs/libdriver/printer.cc
diff --git a/NEWS b/NEWS
index 37f8d5ed..a1b5ec5f 100644
--- a/NEWS
+++ b/NEWS
@@ -42,6 +42,9 @@ o Color support has been added to troff and pic (and to the device drivers
o Similar to \m and \M, \f[] switches back to the previous font. \fP
(and \f[P]) is still valid for backwards compatibility.
+o The new escape \F is the same as `.fam'; \F[] switches back to previous
+ family -- \F[P] selects family `P'.
+
o Two new glyph symbols are available: `eu' is the official Euro symbol;
`Eu' is a font-specific glyph variant.
diff --git a/contrib/groffer/groffer.man b/contrib/groffer/groffer.man
index cd5be322..41278240 100644
--- a/contrib/groffer/groffer.man
+++ b/contrib/groffer/groffer.man
@@ -75,7 +75,7 @@ FDL in the main directory of the groff source package.
. ds @opt \$1\"
. shift
. nh
-. Text \f[CB]\*[@--]\f[P]\f[B]\*[@opt]\f[P]\/\$*
+. Text \f[CB]\*[@--]\f[]\f[B]\*[@opt]\f[]\/\$*
. hy
. rm @opt
..
@@ -91,10 +91,10 @@ FDL in the main directory of the groff source package.
. shift
. nh
. ie (\n[.$] == 0) \
-. Text \f[R][\f[P]\f[CB]\*[@--]\f[P]\f[B]\*[@opt]\f[P]\f[R]]\f[P]
+. Text \f[R][\f[]\f[CB]\*[@--]\f[]\f[B]\*[@opt]\f[]\f[R]]\f[]
. el \{\
-. Text \f[R][\f[P]\f[CB]\*[@--]\f[P]\f[B]\*[@opt]
-. Text \f[P]\f[I]\/\$*\f[P]\f[R]]\f[P]
+. Text \f[R][\f[]\f[CB]\*[@--]\f[]\f[B]\*[@opt]
+. Text \f[]\f[I]\/\$*\f[]\f[R]]\f[]
. \}
. hy
. rm @opt
@@ -113,13 +113,13 @@ FDL in the main directory of the groff source package.
. if (\n[.$] >= 1) \{\
. ds @1 \$1\"
. if !'\*[@1]'' \
-. ds @short \f[CB]\*[@-]\*[@1]\f[P]\"
+. ds @short \f[CB]\*[@-]\*[@1]\f[]\"
. if (\n[.$] >= 2) \{\
. if !'\*[@short]'' \
-. as @short \f[CW]\0\f[P]\"
+. as @short \f[CW]\0\f[]\"
. ds @2 \$2\"
. if !'\*[@2]'' \
-. ds @long \f[CB]\*[@--]\f[P]\f[B]\*[@2]\f[P]\"
+. ds @long \f[CB]\*[@--]\f[]\f[B]\*[@2]\f[]\"
. if (\n[.$] >= 3) \{\
. if !'\*[@long]'' \
. as @long \|=\|\"
@@ -128,7 +128,7 @@ FDL in the main directory of the groff source package.
. \}
. \}
. \}
-. IP "\f[R]\*[@short]\*[@long]\*[@arg]\f[P]"
+. IP "\f[R]\*[@short]\*[@long]\*[@arg]\f[]"
. hy
. rm @1
. rm @2
@@ -142,7 +142,7 @@ FDL in the main directory of the groff source package.
. br
. ad l
. nh
-. Text \f[I]shell#\h'1m'\f[P]\f[CR]\$*\f[P]\&\"
+. Text \f[I]shell#\h'1m'\f[]\f[CR]\$*\f[]\&\"
. ft R
. ft P
. hy
@@ -182,7 +182,7 @@ FDL in the main directory of the groff source package.
. ds @opt \$1\"
. shift
. nh
-. Text \f[CB]\*[@-]\f[P]\f[B]\*[@opt]\fP\/\$*
+. Text \f[CB]\*[@-]\f[]\f[B]\*[@opt]\fP\/\$*
. hy
. rm @opt
..
@@ -198,10 +198,10 @@ FDL in the main directory of the groff source package.
. shift
. nh
. ie (\n[.$] == 0) \
-. Text \f[R][\f[P]\f[CB]\*[@-]\*[@opt]\f[P]\f[R]]\f[P]
+. Text \f[R][\f[]\f[CB]\*[@-]\*[@opt]\f[]\f[R]]\f[]
. el \{\
-. Text \f[R][\f[P]\f[CB]\*[@-]\*[@opt]
-. Text \f[P]\f[I]\/\$*\f[P]\f[R]]\f[P]
+. Text \f[R][\f[]\f[CB]\*[@-]\*[@opt]
+. Text \f[]\f[I]\/\$*\f[]\f[R]]\f[]
. \}
. hy
. rm @opt
diff --git a/doc/groff.texinfo b/doc/groff.texinfo
index 0f1c5ad1..585e10fc 100644
--- a/doc/groff.texinfo
+++ b/doc/groff.texinfo
@@ -7500,6 +7500,7 @@ special symbols (Greek, mathematics).
@cindex fonts, changing (@code{ft}, @code{\f})
@cindex @code{sty} request, and changing fonts
@cindex @code{fam} request, and changing fonts
+@cindex @code{\F} escape, and changing fonts
@kindex styles
@kindex family
@pindex DESC
@@ -7513,8 +7514,8 @@ to @var{font} (one-character name@w{ }@var{f}, two-character name
If @var{font} is a style name (as set with the @code{sty} request or
with the @code{styles} command in the @file{DESC} file), use it within
-the current font family (as set with the @code{fam} request or with
-the @code{family} command in the @file{DESC} file).
+the current font family (as set with the @code{fam} request, @code{\F}
+escape, or with the @code{family} command in the @file{DESC} file).
@cindex previous font (@code{ft}, @code{\f[]}, @code{\fP})
@cindex font, previous (@code{ft}, @code{\f[]}, @code{\fP})
@@ -7538,7 +7539,7 @@ and sausage.
eggs, bacon, \fBspam\fP and sausage.
@endExample
-Note that @code{\f} doesn't produce an inpt token in @code{gtroff}.
+Note that @code{\f} doesn't produce an input token in @code{gtroff}.
As a consequence, it can be used in requests like @code{mc} (which
expects a single character as an argument) to change the font on
the fly:
@@ -7594,13 +7595,21 @@ By default, @code{gtroff} uses the Times family with the four styles
This way, it is possible to use the basic four fonts and to select a
different font family on the command line (@pxref{Groff Options}).
-@cindex changing font family (@code{fam})
-@cindex font family, changing (@code{fam})
+@cindex changing font family (@code{fam}, @code{\F})
+@cindex font family, changing (@code{fam}, @code{\F})
@DefreqList {fam, [@Var{family}]}
@DefregItem {.fam}
+@DefescItem {\\F, , f, }
+@DefescItem {\\F, @lparen{}, fm, }
+@DefescItem {\\F, @lbrack{}, family, @rbrack}
@DefregListEnd {.fn}
-Switch font family to @var{family}. If no argument is given, switch
-back to the previous font family. The value at start-up is @samp{T}.
+Switch font family to @var{family} (one-character name@w{ }@var{f},
+two-character name @var{fm}). If no argument is given, switch
+back to the previous font family. Use @code{\F[]} to do this with the
+escape. Note that @code{\FP} doesn't work; it selects font family
+@samp{P} instead.
+
+The value at start-up is @samp{T}.
The current font family is available in the read-only number register
@samp{.fam} (this is a string-valued register); it is associated with
the current environment.
@@ -7619,6 +7628,15 @@ baked beans,
and spam.
@endExample
+Note that @code{\F} doesn't produce an input token in @code{gtroff}.
+As a consequence, it can be used in requests like @code{mc} (which
+expects a single character as an argument) to change the font family on
+the fly:
+
+@Example
+.mc \F[P]x\F[]
+@endExample
+
The @samp{.fn} register contains the current @dfn{real font name}
of the current font.
This is a string-valued register.
@@ -7672,8 +7690,8 @@ is equivalent to
.sty 4 BI
@endExample
-@code{fam} always checks whether the current font position is valid;
-this can give surprising results if the current font position is
+@code{fam} and @code{\F} always check whether the current font position
+is valid; this can give surprising results if the current font position is
associated with a style.
In the following example, we want to access the @sc{PostScript} font
@@ -7773,6 +7791,7 @@ syntax forms to access font positions.
@cindex font position, changing (@code{\f})
@cindex @code{sty} request, and font positions
@cindex @code{fam} request, and font positions
+@cindex @code{\F} escape, and font positions
@kindex styles
@kindex family
@pindex DESC
@@ -7786,8 +7805,9 @@ integer.
If @var{nnn} is associated with a style (as set with the @code{sty}
request or with the @code{styles} command in the @file{DESC} file), use
-it within the current font family (as set with the @code{fam} request or
-with the @code{family} command in the @file{DESC} file).
+it within the current font family (as set with the @code{fam} request,
+the @code{\F} escape, or with the @code{family} command in the @file{DESC}
+file).
@Example
this is font 1
@@ -7884,7 +7904,8 @@ character @code{a} is not the same as @code{\[a]}. By default,
it is usually accessed as @code{\-}. On the other hand, @code{gtroff}
has the special feature that @code{\[char@var{XXX}]} is the same as the
input character with character code @var{XXX}. For example,
-@code{\[char97]} is identical to the letter @code{a}.}
+@code{\[char97]} is identical to the letter @code{a} if @acronym{ASCII}
+encoding is active.}
If @var{name} is undefined, a warning of type @samp{char} is generated,
and the escape is ignored. @xref{Debugging}, for information about
@@ -8113,7 +8134,7 @@ Default unit is @samp{z}.
Currently, only the @option{-Tps} device supports this feature.
-Note that @code{\H} doesn't produce an inpt token in @code{gtroff}.
+Note that @code{\H} doesn't produce an input token in @code{gtroff}.
As a consequence, it can be used in requests like @code{mc} (which
expects a single character as an argument) to change the font on
the fly:
@@ -8134,7 +8155,7 @@ degrees. Positive values slant to the right.
Currently, only the @option{-Tps} device supports this feature.
-Note that @code{\S} doesn't produce an inpt token in @code{gtroff}.
+Note that @code{\S} doesn't produce an input token in @code{gtroff}.
As a consequence, it can be used in requests like @code{mc} (which
expects a single character as an argument) to change the font on
the fly:
@@ -11368,10 +11389,10 @@ it sets the four number registers to zero.
@cindex node, output
@code{gtroff} processes input in three steps. One or more input
characters are converted to an @dfn{input token}.@footnote{Except the
-escapes @code{\f}, @code{\H}, @code{\R}, @code{\s}, and @code{\S}
-which are processed immediately if not in copy-in mode.} Then, one
-or more input tokens are converted to an @dfn{output node}. Finally,
-output nodes are converted to the intermediate output language
+escapes @code{\f}, @code{\F}, @code{\H}, @code{\R}, @code{\s}, and
+@code{\S} which are processed immediately if not in copy-in mode.}
+Then, one or more input tokens are converted to an @dfn{output node}.
+Finally, output nodes are converted to the intermediate output language
understood by all output devices.
Actually, before step one happens, @code{gtroff} converts certain
diff --git a/man/groff.man b/man/groff.man
index 71ae61ca..9446dab4 100644
--- a/man/groff.man
+++ b/man/groff.man
@@ -2,7 +2,7 @@
.ig
groff.man
-Last update: 14 Apr 2002
+Last update: 15 Apr 2002
This file is part of groff, the GNU roff type-setting system.
@@ -75,12 +75,12 @@ FDL in the main directory of the groff source package.
. if (\n[.$] = 0) \
. break
. ds @a \$1\"
-. as @s \f[\*[@f1]]\*[@a]\f[P]\"
+. as @s \f[\*[@f1]]\*[@a]\f[]\"
. shift
. if (\n[.$] = 0) \
. break
. ds @a \$1\"
-. as @s \f[\*[@f2]]\*[@a]\f[P]\"
+. as @s \f[\*[@f2]]\*[@a]\f[]\"
. shift
. \}
. \*[@m] \*[@s]\f[R]
@@ -126,11 +126,11 @@ FDL in the main directory of the groff source package.
. shift 1
. ie (\n[.$] = 0) \{\
. TP 10n
-. Text \f[CB]\*[@1]\f[P]
+. Text \f[CB]\*[@1]\f[]
. \}
. el \{\
. TP 10n
-. Text \f[CB]\*[@1]\~\f[P]\f[I]\$*\f[P]
+. Text \f[CB]\*[@1]\~\f[]\f[I]\$*\f[]
. \}
. rm @1
..
@@ -143,13 +143,13 @@ FDL in the main directory of the groff source package.
.
.c number with a trailing unit
.de scalednumber
-. Text \$1\^\f[CB]\$2\f[P]\$3\f[R]
+. Text \$1\^\f[CB]\$2\f[]\$3\f[R]
. ft P
..
.
.c representation of units within the text
.de scaleindicator
-. Text \f[CB]\$1\f[P]\$2\f[R]
+. Text \f[CB]\$1\f[]\$2\f[R]
. ft P
..
.
@@ -243,7 +243,7 @@ FDL in the main directory of the groff source package.
.de escarg
. if (\n[.$] < 2) \
. ab .esc needs 2 or 3 arguments.
-. Text \f[B]\[rs]\$1\f[P]\f[I]\$2\f[P]\$3
+. Text \f[B]\[rs]\$1\f[]\f[I]\$2\f[]\$3
..
.c ---------------------------------------------------------------------
.c .esc[] name arg [punct]
@@ -257,7 +257,7 @@ FDL in the main directory of the groff source package.
.de esc[]
. if (\n[.$] < 2) \
. ab .esc[] needs 2 or 3 arguments.
-. Text \f[B]\[rs]\$1\[lB]\f[P]\f[I]\$2\f[P]\f[B]\[rB]\f[P]\$3
+. Text \f[B]\[rs]\$1\[lB]\f[]\f[I]\$2\f[]\f[B]\[rB]\f[]\$3
..
.
.c ---------------------------------------------------------------------
@@ -272,7 +272,7 @@ FDL in the main directory of the groff source package.
.de escq
. if (\n[.$] < 2) \
. ab .escq needs 2 arguments.
-. Text \f[B]\[rs]\$1\[cq]\f[P]\f[I]\$2\f[P]\f[B]\[cq]\f[P]\$3
+. Text \f[B]\[rs]\$1\[cq]\f[]\f[I]\$2\f[]\f[B]\[cq]\f[]\$3
..
.
.c --------- strings ---------
@@ -282,14 +282,14 @@ FDL in the main directory of the groff source package.
. ds @1 \$1\"
. shift 1
. TP 10n
-. ExecFF Text R CB \[rs]*[ \*[@1]\f[P]\f[R]] \$*
+. ExecFF Text R CB \[rs]*[ \*[@1]\f[]\f[R]] \$*
. rm @1
..
.c synopsis for a long string
.de string
. if (\n[.$] = 0) \
. return
-. Text \f[CB]\[rs]*\[lB]\$1\[rB]\f[P]\$2
+. Text \f[CB]\[rs]*\[lB]\$1\[rB]\f[]\$2
..
.
.
@@ -300,7 +300,7 @@ FDL in the main directory of the groff source package.
. ds @1 \$1\"
. shift 1
. TP 10n
-. ExecFF Text R CB \[rs]n[ \*[@1]\f[P]\f[R]] \$*
+. ExecFF Text R CB \[rs]n[ \*[@1]\f[]\f[R]] \$*
. rm @1
..
.c reference of a register, without decoration
@@ -694,7 +694,7 @@ The open parenthesis is only special in escape sequences when
introducing an escape name or argument consisting of exactly two
characters.
.
-In groff, this behavior can be replaced by the \f[CB][]\f[P] construct.
+In groff, this behavior can be replaced by the \f[CB][]\f[] construct.
.TP
.character [
The opening bracket is only special in groff escape sequences; there
@@ -708,7 +708,7 @@ it terminates a long escape name or long escape argument.
.
Otherwise, it is non-special.
.TP
-\f[CI]space\f[P]
+\f[CI]space\f[]
Space characters are only functional characters.
.
They separate the arguments in requests or macros, and the words in
@@ -725,14 +725,14 @@ or
.esc h
should be used.
.
-.IP \f[CI]newline\f[P]
+.IP \f[CI]newline\f[]
In text paragraphs, newlines mostly behave like space characters.
.
Continuation lines can be specified by an escaped newline, i.e., by
specifying a backslash
.squoted_char \[rs]
as the last character of a line.
-.IP \f[CI]tab\f[P]
+.IP \f[CI]tab\f[]
If a tab character occurs during text the interpreter makes a
horizontal jump to the next pre-defined tab position.
.
@@ -803,7 +803,7 @@ Basic unit for actual output device
.B v
Vertical line space in basic units
scaled point\ \[eq]\ 1/\f[CI]sizescale\f[R] of a point (defined in
-font \f[I]DESC\f[P] file)
+font \f[I]DESC\f[] file)
.
.TPx
.B f
@@ -1130,14 +1130,14 @@ Begin line adjustment for output lines in current adjust mode.
.REQ .ad c
Start line adjustment in mode
.I c
-(\f[CI]c\f[P]\f[CR]\|\^\[eq]\|l,r,b,n\f[P]).
+(\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,r,b,n\f[]).
.
.REQ .af register c
Assign format
.I c
to
.I register
-(\f[CI]c\f[P]\f[CR]\|\^\[eq]\|l,i,I,a,A\f[P]).
+(\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,i,I,a,A\f[]).
.
.REQ .aln alias register
Create alias name for
@@ -2003,7 +2003,7 @@ Space-character size set to
.IR N /12
and sentence space size set to
.IR M /12
-of the spacewidth in the current font (\f[CR]\[eq]1/3 em\f[P]).
+of the spacewidth in the current font (\f[CR]\[eq]1/3 em\f[]).
.
.REQ .sty n style
Associate
@@ -2040,7 +2040,7 @@ Set tabs after every position that is a multiple of
.I N
(default scaling indicator\~\c
.scaleindicator m ).
-.REQ .ta n1 n2 .\|.\|.\& nn \f[CB]T\f[P] r1 r2 .\|.\|.\& rn
+.REQ .ta n1 n2 .\|.\|.\& nn \f[CB]T\f[] r1 r2 .\|.\|.\& rn
Set tabs at positions
.IR n1 ,
.IR n2 ,
@@ -2078,7 +2078,7 @@ Temporary indent next line (default scaling indicator\~\c
Enable track kerning for
.IR font .
.
-.REQ .tl \f[CB]\[cq]\f[P]left\f[CB]\[cq]\f[P]center\f[CB]\[cq]\f[P]right\f[CB]\[cq]\f[P]
+.REQ .tl \f[CB]\[cq]\f[]left\f[CB]\[cq]\f[]center\f[CB]\[cq]\f[]right\f[CB]\[cq]\f[]
Three-part title.
.
.REQ .tm anything
@@ -2309,11 +2309,11 @@ except that the terminating newline is ignored as well.
.
.\" --------- strings ---------
.
-.ESC *\f[I]s\f[P]
+.ESC *\f[I]s\f[]
The string stored in the string variable with 1-character name
.IR s .
.
-.ESC *(\f[I]st\f[P]
+.ESC *(\f[I]st\f[]
The string stored in the string variable with 2-character name
.IR st .
.
@@ -2520,7 +2520,7 @@ Change to font with 1-character name or 1-digit number
Switch back to previous font.
.
.ESC f( fo
-Change to font with 2-characer name or 2-digit number
+Change to font with 2-character name or 2-digit number
.IR fo .
.
.ESC[] f font
@@ -2530,6 +2530,21 @@ Change to font with arbitrary length name or number expression
.ESC[] f ""
Switch back to previous font.
.
+.ESC F f
+Change to font family with 1-character name
+.IR f .
+.
+.ESC F( fm
+Change to font family with 2-character name
+.IR fm .
+.
+.ESC[] F fam
+Change to font family with arbitrary length name
+.IR fam .
+.
+.ESC[] F ""
+Switch back to previous font family.
+.
.ESC[] g reg
Return format of register with name
.I reg
diff --git a/man/groff_diff.man b/man/groff_diff.man
index f39b2506..ca8168e2 100644
--- a/man/groff_diff.man
+++ b/man/groff_diff.man
@@ -3,7 +3,7 @@
.ig
groff_diff.man
-Last update : 14 Apr 2002
+Last update : 15 Apr 2002
This file is part of groff, the GNU roff type-setting system.
It is the source of the man-page groff_diff(7).
@@ -64,21 +64,21 @@ FDL in the main directory of the groff source package.
.de squoted
. ds @arg1 \$1
. shift
-.\" Text \[oq]\f[CB]\*[@arg1]\f[P]\[cq]\$*
-. Text \[oq]\f[B]\*[@arg1]\f[P]\[cq]\$*
+.\" Text \[oq]\f[CB]\*[@arg1]\f[]\[cq]\$*
+. Text \[oq]\f[B]\*[@arg1]\f[]\[cq]\$*
. rm @arg1
..
.\" A shell command line
.de ShellCommand
. br
-. IR "shell#" "\h'1m'\f[CB]\$*\f[P]\/"
+. IR "shell#" "\h'1m'\f[CB]\$*\f[]\/"
..
.\" reference of a request or macro
.de request
. ds @arg1 \$1
. shift 1
-.\" Text \f[CB]\*[@arg1]\f[P]\$*
-. Text \f[B]\*[@arg1]\f[P]\$*
+.\" Text \f[CB]\*[@arg1]\f[]\$*
+. Text \f[B]\*[@arg1]\f[]\$*
. rm @arg1
..
.als option request
@@ -87,8 +87,8 @@ FDL in the main directory of the groff source package.
.de esc
. ds @arg1 \$1
. shift
-.\" Text \f[CB]\[rs]\*[@arg1]\f[P]\$*
-. Text \f[B]\[rs]\*[@arg1]\&\f[P]\$*
+.\" Text \f[CB]\[rs]\*[@arg1]\f[]\$*
+. Text \f[B]\[rs]\*[@arg1]\&\f[]\$*
. rm @arg1
..
.ec
@@ -414,6 +414,23 @@ argument).
.RE
.
.TP
+.BI \[rs]F f
+.TQ
+.BI \[rs]F( fm
+.TQ
+.BI \[rs]F[ fam ]
+Change font family.
+.
+This is the same as the
+.B fam
+request.
+.
+.B \[rs]F[]
+switches back to the previous color (note that
+.B \[rs]FP
+won't work; it selects font family `P' instead).
+.
+.TP
.BI \[rs]m x
.TQ
.BI \[rs]m( xx
diff --git a/man/groff_out.man b/man/groff_out.man
index 6dba4913..3ef60578 100644
--- a/man/groff_out.man
+++ b/man/groff_out.man
@@ -80,7 +80,7 @@ after these commands, otherwise the position is not changed.
..
.de ShellCommand
. br
-. IR "shell>" "\h'1m'\f[CB]\$*\f[P]\/"
+. IR "shell>" "\h'1m'\f[CB]\$*\f[]\/"
..
.ec
.\" End of macro definitions
@@ -89,7 +89,7 @@ after these commands, otherwise the position is not changed.
.
.nr @maxcolor 65536
.ds @backslash \[rs]\"
-.ds @linebreak \f[R]\[la]line_break\[ra]\f[P]\"
+.ds @linebreak \f[R]\[la]line_break\[ra]\f[]\"
.
.\" Begin of macro definitions
.eo
@@ -124,7 +124,7 @@ after these commands, otherwise the position is not changed.
. ds @arg1 \$1\"
. ds @arg2 \$2\"
. shift 2
-. nop (\f[I]\,\*[@arg1]\/\f[P],\ \f[I]\,\*[@arg2]\/\f[P])\$*
+. nop (\f[I]\,\*[@arg1]\/\f[],\ \f[I]\,\*[@arg2]\/\f[])\$*
. rm @arg1
. rm @arg2
..
@@ -151,8 +151,8 @@ after these commands, otherwise the position is not changed.
. \}
. \}
. el \{\
-. nop (\f[I]\*[@arg1]\*[@index1]\f[P],\ \c
-. nop \f[I]\*[@arg2]\*[@index2]\f[P])\$* \c
+. nop (\f[I]\*[@arg1]\*[@index1]\f[],\ \c
+. nop \f[I]\*[@arg2]\*[@index2]\f[])\$* \c
. \}
. rm @arg1
. rm @arg2
@@ -164,7 +164,7 @@ after these commands, otherwise the position is not changed.
. ds @arg1 \$1\"
. ds @arg2 \$2\"
. shift 2
-. IP "\f[B]\*[@arg1]\f[P]\ \f[I]\,\*[@arg2]\/\f[P]\$*"
+. IP "\f[B]\*[@arg1]\f[]\ \f[I]\,\*[@arg2]\/\f[]\$*"
. rm @arg1
. rm @arg2
..
@@ -175,7 +175,7 @@ after these commands, otherwise the position is not changed.
. ds @arg2 \$2\"
. shift 2
. TP+
-. Text "\f[B]\*[@arg1]\f[P]\ \f[I]\,\*[@arg2]\/\f[P]\$*"
+. Text "\f[B]\*[@arg1]\f[]\ \f[I]\,\*[@arg2]\/\f[]\$*"
. rm @arg1
. rm @arg2
..
@@ -183,7 +183,7 @@ after these commands, otherwise the position is not changed.
.de D-command
. ds @sub \$1\"
. shift 1
-. IP "\f[B]D\*[@sub]\f[P]\ \f[I]\,\$*\/\f[P]\|\*[@linebreak]"
+. IP "\f[B]D\*[@sub]\f[]\ \f[I]\,\$*\/\f[]\|\*[@linebreak]"
. rm @sub
..
.c format: .D-command+ <subcommand> "<arguments>"
@@ -192,7 +192,7 @@ after these commands, otherwise the position is not changed.
. ds @sub \$1\"
. shift 1
. TP+
-. Text "\f[B]D\*[@sub]\f[P]\ \f[I]\,\$*\/\f[P]\*[@linebreak]"
+. Text "\f[B]D\*[@sub]\f[]\ \f[I]\,\$*\/\f[]\*[@linebreak]"
. rm @sub
..
.de Da-command
@@ -200,8 +200,8 @@ after these commands, otherwise the position is not changed.
. ie t \
. ds @args $h sub 1$\~$v sub 1$ $h sub 2$\~$v sub 2$\"
. el \
-. ds @args \f[I]h1\~v1 h2\~v2\f[P]\"
-. IP "\f[B]Da\f[P]\ \*[@args]\|\*[@linebreak]"
+. ds @args \f[I]h1\~v1 h2\~v2\f[]\"
+. IP "\f[B]Da\f[]\ \*[@args]\|\*[@linebreak]"
. rm @args
..
.c graphics command .D with a variable number of arguments
@@ -214,8 +214,8 @@ after these commands, otherwise the position is not changed.
. as @args "$h sub n$\~$v sub n$\"
. \}
. el \
-. ds @args \f[I]h1\~v1 h2\~v2\f[P] ... \f[I]\,hn\~vn\f[P]\"
-. IP "\f[B]D\*[@sub]\f[P]\ \*[@args]\|\*[@linebreak]"
+. ds @args \f[I]h1\~v1 h2\~v2\f[] ... \f[I]\,hn\~vn\f[]\"
+. IP "\f[B]D\*[@sub]\f[]\ \*[@args]\|\*[@linebreak]"
. rm @args
. rm @sub
..
@@ -225,8 +225,8 @@ after these commands, otherwise the position is not changed.
. shift 1
. ds @args
. if (\n[.$] > 0) \
-. ds @args \ \f[I]\,\$*\/\f[P]\"
-. IP "\f[B]x\*[@sub]\f[P]\*[@args]\f[P]\|\*[@linebreak]"
+. ds @args \ \f[I]\,\$*\/\f[]\"
+. IP "\f[B]x\*[@sub]\f[]\*[@args]\f[]\|\*[@linebreak]"
. rm @sub
. rm @args
..
@@ -666,7 +666,7 @@ also, but
doesn't use this.
.
.
-.command m "color_scheme \f[R][\f[P]component .\|.\|.\f[R]]\f[P]"
+.command m "color_scheme \f[R][\f[]component .\|.\|.\f[R]]\f[]"
Set the color for text (glyphs), line drawing, and the outline of
graphic objects using different color schemes; the analoguous command
for the filling color of graphic objects is
@@ -990,7 +990,7 @@ with the leftmost point at current position; then move to the
rightmost point of the ellipse.
.
.
-.D-command F "color_scheme \f[R][\f[P]component .\|.\|.\f[R]]\f[P]"
+.D-command F "color_scheme \f[R][\f[]component .\|.\|.\f[R]]\f[]"
Set fill color for solid drawing objects using different color
schemes; the analoguous command for setting the color of text, line
graphics, and the outline of graphic objects is
diff --git a/man/roff.man b/man/roff.man
index 924437ef..26de0b30 100644
--- a/man/roff.man
+++ b/man/roff.man
@@ -50,13 +50,13 @@ FDL in the main directory of the groff source package.
.de esc
. ds @1 \$1\"
. shift
-. Text \f[B]\[rs]\*[@1]\f[P]\$*
+. Text \f[B]\[rs]\*[@1]\f[]\$*
. rm @1
..
.de option
. ds @1 \$1\"
. shift 1
-. Text \f[B]\*[@1]\f[P]\$*
+. Text \f[B]\*[@1]\f[]\$*
. rm @1
..
.de quoted_char
@@ -67,7 +67,7 @@ FDL in the main directory of the groff source package.
..
.de ShellCommand
. br
-. IR "shell#" "\h'1m'\f[CB]\$*\f[P]\/"
+. IR "shell#" "\h'1m'\f[CB]\$*\f[]\/"
..
.de TP+
. br
diff --git a/src/devices/grotty/grotty.man b/src/devices/grotty/grotty.man
index 214b8147..3be01b96 100644
--- a/src/devices/grotty/grotty.man
+++ b/src/devices/grotty/grotty.man
@@ -74,7 +74,7 @@ emits SGR escape sequences (from ISO 6429, also called ANSI color escapes)
to change text attributes (bold, italic, colors).
This makes it possible to have have eight different \M[green]background\M[]
and \m[red]foreground\m[] colors; additionally, bold and italic
-attributes can be used \f[BI]at the same time\f[P] (by using the BI font).
+attributes can be used \f[BI]at the same time\f[] (by using the BI font).
.LP
The following colors are defined in
.BR tty.tmac :
diff --git a/src/roff/groff/groff.man b/src/roff/groff/groff.man
index baad66fc..00d98c1d 100644
--- a/src/roff/groff/groff.man
+++ b/src/roff/groff/groff.man
@@ -193,7 +193,7 @@ FDL in the main directory of the groff source package.
.de ShellCommand
. ad l
. I shell#
-. nop \f[CB]\$*\f[P]
+. nop \f[CB]\$*\f[]
. ad
..
.\" --------------------------------------------------------------------
diff --git a/src/roff/troff/env.cc b/src/roff/troff/env.cc
index 7e1cc734..ede6b78c 100644
--- a/src/roff/troff/env.cc
+++ b/src/roff/troff/env.cc
@@ -479,7 +479,9 @@ void environment::set_font(int n)
void environment::set_family(symbol fam)
{
- if (fam.is_null()) {
+ if (interrupted)
+ return;
+ if (fam.is_null() || fam.is_empty()) {
if (prev_family->make_definite(fontno) < 0)
return;
font_family *tem = family;
diff --git a/src/roff/troff/input.cc b/src/roff/troff/input.cc
index 0ddbc10b..446bc3d5 100644
--- a/src/roff/troff/input.cc
+++ b/src/roff/troff/input.cc
@@ -1806,6 +1806,14 @@ void token::next()
have_input = 1;
break;
}
+ case 'F':
+ {
+ symbol s = read_escape_name(0);
+ if (s.is_null())
+ break;
+ curenv->set_family(s);
+ break;
+ }
case 'g':
{
symbol s = read_escape_name();
diff --git a/tmac/Xps.tmac b/tmac/Xps.tmac
index b6a5de6d..1064ba6b 100644
--- a/tmac/Xps.tmac
+++ b/tmac/Xps.tmac
@@ -7,8 +7,8 @@
. char \\$1 \Z"\X'ps: invis'\\$2\X'ps: endinvis'"\\$1
..
.
-.Xps-char \[bu] \f[S]\[bu]\f[P]
-.Xps-char \[f/] \f[S]\[f/]\f[P]
+.Xps-char \[bu] \f[S]\[bu]
+.Xps-char \[f/] \f[S]\[f/]
.Xps-char \[em] "\v'-.25m'\h'.05m'\D'l .9m 0'"
.Xps-char \[aq] '
.Xps-char \[bq] ,
@@ -17,7 +17,7 @@
.Xps-char \[rq] ''
.Xps-char \[OE] OE
.Xps-char \[oe] oe
-.Xps-char \[Fn] \f[S]\[Fn]\f[P]
+.Xps-char \[Fn] \f[S]\[Fn]
.Xps-char \[vS] \o'\[ah]S'
.Xps-char \[vs] \o'\[ah]s'
.Xps-char \[vZ] \o'\[ah]Z'
@@ -42,7 +42,7 @@
.Xps-char \[dg] "\Z'\h'.25m'\v'.15m'\D'l 0 -.8m'\v'.2m'\h'-.195m'\
\D'l .39m 0''"
.Xps-char \[en] \-
-.Xps-char \[%0] %\s[\En[.s]*6u/10u]\f[I]0\f[P]\s[0]
+.Xps-char \[%0] %\s[\En[.s]*6u/10u]\f[I]0
.Xps-char \[lh] \[->]
.Xps-char \[rh] \[<-]
.cp \n[_C]
diff --git a/tmac/doc-common b/tmac/doc-common
index 00fae8eb..2496cf6a 100644
--- a/tmac/doc-common
+++ b/tmac/doc-common
@@ -531,16 +531,16 @@
. doc-setup-page-layout
. if !\n[cR] \
' sp \n[doc-header-space]u
-. nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\f[P]'
-. nr doc-reg-dh1 \w'\*[doc-caption-font2]\*[doc-volume]\f[P]'
+. nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\f[]'
+. nr doc-reg-dh1 \w'\*[doc-caption-font2]\*[doc-volume]\f[]'
. if (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
. while (\n[doc-reg-dh] + \n[doc-reg-dh1] + \n[doc-reg-dh] >= \n[.lt]) \{\
. substring doc-header-string 1 -1
-. nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\|.\|.\|.\f[P]'
+. nr doc-reg-dh \w'\*[doc-caption-font]\*[doc-header-string]\|.\|.\|.\f[]'
. \}
. as doc-header-string "\|.\|.\|.
. \}
-. tl \*[doc-caption-font]\*[doc-header-string]\f[P]\*[doc-caption-font2]\*[doc-volume]\f[P]\*[doc-caption-font]\*[doc-header-string]\f[P]
+. tl \*[doc-caption-font]\*[doc-header-string]\f[]\*[doc-caption-font2]\*[doc-volume]\f[]\*[doc-caption-font]\*[doc-header-string]\f[]
' sp \n[doc-header-space]u
. ev
..
@@ -558,12 +558,12 @@
' sp \n[doc-footer-space]u
. ie \n[D] \{\
. ie o \
-. tl %\*[doc-caption-font2]\*[doc-date-string]\f[P]\*[doc-caption-font]\*[doc-operating-system]\f[P]
+. tl %\*[doc-caption-font2]\*[doc-date-string]\f[]\*[doc-caption-font]\*[doc-operating-system]\f[]
. el \
-. tl \*[doc-caption-font]\*[doc-operating-system]\f[P]\*[doc-caption-font2]\*[doc-date-string]\f[P]%
+. tl \*[doc-caption-font]\*[doc-operating-system]\f[]\*[doc-caption-font2]\*[doc-date-string]\f[]%
. \}
. el \
-. tl \*[doc-caption-font]\*[doc-operating-system]\f[P]\*[doc-caption-font2]\*[doc-date-string]\f[P]%
+. tl \*[doc-caption-font]\*[doc-operating-system]\f[]\*[doc-caption-font2]\*[doc-date-string]\f[]%
' bp
. ev
. \}
@@ -591,7 +591,7 @@
.
. if \n[cR] \{\
' sp
-. tl \*[doc-caption-font]\*[doc-operating-system]\f[P]\*[doc-caption-font2]\*[doc-date-string]\f[P]\*[doc-caption-font]\*[doc-operating-system]\f[P]
+. tl \*[doc-caption-font]\*[doc-operating-system]\f[]\*[doc-caption-font2]\*[doc-date-string]\f[]\*[doc-caption-font]\*[doc-operating-system]\f[]
. \" suppress empty lines after the footer
. pl \n[nl]u
. \}
diff --git a/tmac/doc-ditroff b/tmac/doc-ditroff
index dff5537d..fd2707ba 100644
--- a/tmac/doc-ditroff
+++ b/tmac/doc-ditroff
@@ -100,12 +100,12 @@
.ds doc-Va-font \f[I]\s[\n[.ps]u]
.ds doc-Xr-font \f[C]\s[\n[.ps]u]
.
-.ds doc-left-parenthesis \f[R]\|(\|\f[P]\s[\n[.ps]u]
-.ds doc-right-parenthesis \f[R]\|)\|\f[P]\s[\n[.ps]u]
-.ds lp \f[R](\f[P]\s[\n[.ps]u]
-.ds rp \f[R])\f[P]\s[\n[.ps]u]
-.ds doc-left-bracket \f[R]\^[\^\f[P]\s[\n[.ps]u]
-.ds doc-right-bracket \f[R]\^]\f[P]\s[\n[.ps]u]
+.ds doc-left-parenthesis \f[R]\|(\|\f[]\s[\n[.ps]u]
+.ds doc-right-parenthesis \f[R]\|)\|\f[]\s[\n[.ps]u]
+.ds lp \f[R](\f[]\s[\n[.ps]u]
+.ds rp \f[R])\f[]\s[\n[.ps]u]
+.ds doc-left-bracket \f[R]\^[\^\f[]\s[\n[.ps]u]
+.ds doc-right-bracket \f[R]\^]\f[]\s[\n[.ps]u]
.
.tr *\[**]
.
@@ -177,8 +177,8 @@
.ds Gt >
.ds Pm \[+-]
.ds If \[if]
-.ds Na \f[I]NaN\f[P]
-.ds Ba \f[R]|\f[P]
+.ds Na \f[I]NaN\f[]
+.ds Ba \f[R]|\f[]
.
.nr gX 0
.
diff --git a/tmac/doc-nroff b/tmac/doc-nroff
index ce4e9871..47260ddd 100644
--- a/tmac/doc-nroff
+++ b/tmac/doc-nroff
@@ -78,12 +78,12 @@
.ds doc-Va-font \f[I]
.ds doc-Xr-font \f[R]
.
-.ds doc-left-parenthesis \f[R](\f[P]
-.ds doc-right-parenthesis \f[R])\f[P]
-.ds lp \f[R](\f[P]
-.ds rp \f[R])\f[P]
-.ds doc-left-bracket \f[R][\f[P]
-.ds doc-right-bracket \f[R]]\f[P]
+.ds doc-left-parenthesis \f[R](\f[]
+.ds doc-right-parenthesis \f[R])\f[]
+.ds lp \f[R](\f[]
+.ds rp \f[R])\f[]
+.ds doc-left-bracket \f[R][\f[]
+.ds doc-right-bracket \f[R]]\f[]
.
.\" miscellaneous
.nr doc-subheader-indent .5i
@@ -155,8 +155,8 @@
.ds Lt <
.ds Gt >
.ds Pm \[+-]
-.ds Na \f[I]NaN\f[P]
-.ds Ba \f[R]|\f[P]
+.ds Na \f[I]NaN\f[]
+.ds Ba \f[R]|\f[]
.
.\" Unicode TTYs have all glyph forms; for other TTY character sets we need
.\" character representations which are different from GNU troff's standard
diff --git a/tmac/doc.tmac b/tmac/doc.tmac
index 3b640e75..334102ac 100644
--- a/tmac/doc.tmac
+++ b/tmac/doc.tmac
@@ -158,7 +158,7 @@
.
. \" handle `|' and `...' specially
. ie "\$1"|" \
-. ds doc-arg\n[doc-arg-limit] \f[R]|\f[P]
+. ds doc-arg\n[doc-arg-limit] \f[R]|\f[]
. el \{ .ie "\$1"..." \
. ds doc-arg\n[doc-arg-limit] \|.\|.\|.
. el \
@@ -207,7 +207,7 @@
. nr doc-arg-limit +1
.
. ie "\*[doc-arg\n[doc-arg-limit]]"|" \
-. ds doc-arg\n[doc-arg-limit] \f[R]|\f[P]
+. ds doc-arg\n[doc-arg-limit] \f[R]|\f[]
. el \{ .if "\*[doc-arg\n[doc-arg-limit]]"..." \
. ds doc-arg\n[doc-arg-limit] \|.\|.\|.
. \}
@@ -360,7 +360,7 @@
.
. if !\n[.$] \{\
. \" no arguments
-. nop \|\-\|\f[P]\s[0]
+. nop \|\-\|\f[]\s[0]
. \}\}
.
. if !\n[doc-arg-limit] \
@@ -369,12 +369,12 @@
. nr doc-arg-ptr +1
. ie (\n[doc-arg-limit] < \n[doc-arg-ptr]) \{\
. \" last argument
-. nop \|\-\f[P]\s[0]\c
+. nop \|\-\f[]\s[0]\c
. doc-print-and-reset
. \}
. el \{\
. ie (\n[doc-type\n[doc-arg-ptr]] == 1) \{\
-. nop \|\-\f[P]\s[0]\c
+. nop \|\-\f[]\s[0]\c
. \*[doc-arg\n[doc-arg-ptr]]
. \}
. el \{\
@@ -403,7 +403,7 @@
. ds doc-str-dfr "\*[doc-arg\n[doc-arg-ptr]]
.
. ie (\n[doc-reg-dfr1] == 1) \{\
-. nop \f[P]\s[0]\c
+. nop \f[]\s[0]\c
. \*[doc-str-dfr]
. \}
. el \{\
@@ -419,10 +419,10 @@
. nop \)\*[Ba]\c
. \}
. el \{\
-. ie "\*[doc-str-dfr]"\f[R]|\f[P]" \{\
+. ie "\*[doc-str-dfr]"\f[R]|\f[]" \{\
. if \n[doc-reg-Fl] \
. nop \|\-\*[doc-space]\c
-. nop \f[R]|\f[P]\c
+. nop \f[R]|\f[]\c
. \}
. el \{\
. \" two consecutive hyphen characters?
@@ -433,14 +433,14 @@
. \}\}\}
. el \{\
. nop \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u]\c
-. nop \)\*[doc-str-dfr]\f[P]\s[0]\c
+. nop \)\*[doc-str-dfr]\f[]\s[0]\c
. \}
.
. ie (\n[doc-arg-limit] == \n[doc-arg-ptr]) \{\
. \" last argument
. if (\n[doc-reg-dfr1] == 4) \
. nop \|\-\c
-. nop \f[P]\s[0]\c
+. nop \f[]\s[0]\c
. doc-print-and-reset
. \}
. el \{\
@@ -489,7 +489,7 @@
. el \{\
. \" punctuation character
. nop \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u]\c
-. nop \)\*[doc-str-dpr]\f[P]\s[0]\c
+. nop \)\*[doc-str-dpr]\f[]\s[0]\c
. \}
.
. nr doc-arg-ptr +1
@@ -516,7 +516,7 @@
. if !(\n[doc-type\n[doc-arg-ptr]] == 4) \
. break
. nop \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u]\c
-. nop \)\*[doc-arg\n[doc-arg-ptr]]\f[P]\s[0]\c
+. nop \)\*[doc-arg\n[doc-arg-ptr]]\f[]\s[0]\c
. nr doc-arg-ptr +1
. \}
..
@@ -599,7 +599,7 @@
.
. if !\n[.$] \{\
. \" no argument
-. nop \)\*[doc-str-Ar-default]\&\f[P]\s[0]
+. nop \)\*[doc-str-Ar-default]\&\f[]\s[0]
. \}\}
.
. if !\n[doc-arg-limit] \
@@ -608,7 +608,7 @@
. nr doc-arg-ptr +1
. doc-print-prefixes
. ie (\n[doc-arg-limit] < \n[doc-arg-ptr]) \{\
-. nop \)\*[doc-str-Ar-default]\&\f[P]\s[0]\c
+. nop \)\*[doc-str-Ar-default]\&\f[]\s[0]\c
. doc-print-and-reset
. \}
. el \{\
@@ -927,7 +927,7 @@
. doc-reset-args
. \}
. el \{\
-. nop \*[doc-Nm-font]\*[doc-command-name]\f[P]\s[0]\c
+. nop \*[doc-Nm-font]\*[doc-command-name]\f[]\s[0]\c
. doc-print-and-reset
. \}\}
. el \{\
@@ -940,7 +940,7 @@
. el \{\
. \" replace previous argument (Nm) with default value
. nr doc-arg-ptr -1
-. ds doc-arg\n[doc-arg-ptr] "\*[doc-Nm-font]\*[doc-command-name]\f[P]\s[0]
+. ds doc-arg\n[doc-arg-ptr] "\*[doc-Nm-font]\*[doc-command-name]\f[]\s[0]
. nr doc-type\n[doc-arg-ptr] 2
. ds doc-space\n[doc-arg-ptr] "\*[doc-space]
.
@@ -992,7 +992,7 @@
.
. if !\n[.$] \{\
. \" default value
-. nop \*[doc-Pa-font]~\f[P]\s[0]
+. nop \*[doc-Pa-font]~\f[]\s[0]
. \}\}
.
. if !\n[doc-arg-limit] \
@@ -1019,7 +1019,7 @@
. doc-print-recursive
. \}
. el \{\
-. nop \*[doc-Pa-font]~\f[P]\s[0]\c
+. nop \*[doc-Pa-font]~\f[]\s[0]\c
. doc-print-and-reset
. \}
..
@@ -3858,7 +3858,7 @@
.
.de doc-bullet-list
. nr doc-in-list 1
-. nop \)\*[doc-Sy-font]\[bu]\f[P]
+. nop \)\*[doc-Sy-font]\[bu]\f[]
. doc-do-list
..
.
@@ -3871,7 +3871,7 @@
.
.de doc-dash-list
. nr doc-in-list 1
-. nop \)\*[doc-Sy-font]\-\f[P]
+. nop \)\*[doc-Sy-font]\-\f[]
. doc-do-list
..
.
@@ -3969,9 +3969,9 @@
. \}
. el \{\
. chop doc-item-box\n[doc-list-depth]
-. nr doc-reg-dtl1 \n[.k]u
-. nop \*[doc-item-box\n[doc-list-depth]]\c
-. nop \h'|(\n[doc-reg-dtl1]u - \n[.k]u + \n[doc-reg-dtl]u)'\c
+. \" Using \Z prevents stretching of the spaces in the tag
+. nop \Z'\*[doc-item-box\n[doc-list-depth]]'\c
+. nop \h'\n[doc-reg-dtl]u'\c
. nr doc-have-space 1
. \}
.
@@ -4189,7 +4189,7 @@
. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
. nr doc-curr-font \n[.f]
. nr doc-curr-size \n[.ps]
-. ds doc-arg\n[doc-arg-ptr] \*[doc-Xr-font]\*[doc-arg\n[doc-arg-ptr]]\f[P]\s[0]
+. ds doc-arg\n[doc-arg-ptr] \*[doc-Xr-font]\*[doc-arg\n[doc-arg-ptr]]\f[]\s[0]
.
. if (\n[doc-arg-limit] > \n[doc-arg-ptr]) \{\
. nr doc-reg-Xr (\n[doc-arg-ptr] + 1)
@@ -4585,7 +4585,7 @@
.
. if \n[.$] \
. nop \*[doc-Ft-font]\$*\c
-. nop \ \f[P]\c
+. nop \ \f[]\c
..
.
.
@@ -4681,12 +4681,12 @@
. if (\n[doc-func-arg-count] > 1) \{\
. nop \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u]\|,\)\c
. nop \)\*[doc-space\n[doc-arg-ptr]]\*[doc-Fa-font]\c
-. nop \)\*[doc-arg\n[doc-arg-ptr]]\f[P]\s[0]\c
+. nop \)\*[doc-arg\n[doc-arg-ptr]]\f[]\s[0]\c
. \}
.
. if (\n[doc-func-arg-count] == 1) \{\
. nop \|\*[doc-Fa-font]\*[doc-arg\n[doc-arg-ptr]]\c
-. nop \f[P]\s[0]\c
+. nop \f[]\s[0]\c
. \}
. nr doc-func-arg-count +1
. doc-do-func
@@ -4775,7 +4775,7 @@
. nr doc-curr-font \n[.f]
. nr doc-curr-size \n[.ps]
. nop \*[doc-Fn-font]\*[doc-arg\n[doc-arg-ptr]]\c
-. nop \f[P]\s[0]\*[lp]\)\c
+. nop \f[]\s[0]\*[lp]\)\c
.
. nr doc-arg-ptr +1
. if (\n[doc-arg-limit] >= \n[doc-arg-ptr]) \{\
@@ -4837,7 +4837,7 @@
. if (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
. nr doc-reg-ddfa (\n[doc-arg-ptr] - 1)
. nop \|\f[\n[doc-curr-font]]\s[\n[doc-curr-size]u],\)\c
-. nop \)\*[doc-space\n[doc-reg-ddfa]]\f[P]\s[0]\|\c
+. nop \)\*[doc-space\n[doc-reg-ddfa]]\f[]\s[0]\|\c
. doc-do-func-args
. \}\}
..
@@ -4938,7 +4938,7 @@
. nr doc-curr-size \n[.ps]
.
. nop \*[doc-Fn-font]\*[doc-arg\n[doc-arg-ptr]]\c
-. nop \f[P]\s[0]\*[lp]\)\c
+. nop \f[]\s[0]\*[lp]\)\c
. doc-reset-args
. \}
..
@@ -6137,19 +6137,19 @@
.ds doc-str-Rv-std-prefix "The
.ds doc-str-Rv-std-suffix "function returns the value\~0 if successful;
.as doc-str-Rv-std-suffix " otherwise the value\~-1 is returned and
-.as doc-str-Rv-std-suffix " the global variable \*[doc-Va-font]errno\f[P]
+.as doc-str-Rv-std-suffix " the global variable \*[doc-Va-font]errno\f[]
.as doc-str-Rv-std-suffix " is set to indicate the error.
.
.ds doc-str-Rv-stds-prefix "The
.ds doc-str-Rv-stds-and "and
.ds doc-str-Rv-stds-suffix "functions return the value\~0 if successful;
.as doc-str-Rv-stds-suffix " otherwise the value\~-1 is returned and
-.as doc-str-Rv-stds-suffix " the global variable \*[doc-Va-font]errno\f[P]
+.as doc-str-Rv-stds-suffix " the global variable \*[doc-Va-font]errno\f[]
.as doc-str-Rv-stds-suffix " is set to indicate the error.
.
.ds doc-str-Rv-std0 "Upon successful completion, the value\~0 is returned;
.as doc-str-Rv-std0 " otherwise the value\~-1 is returned and
-.as doc-str-Rv-std0 " the global variable \*[doc-Va-font]errno\f[P]
+.as doc-str-Rv-std0 " the global variable \*[doc-Va-font]errno\f[]
.as doc-str-Rv-std0 " is set to indicate the error.
.
.de Rv
diff --git a/tmac/dvi.tmac b/tmac/dvi.tmac
index d904ce11..bd25942d 100644
--- a/tmac/dvi.tmac
+++ b/tmac/dvi.tmac
@@ -19,8 +19,8 @@
.
.\" This uses the dvi-char_1 string in font CW or CWI, dvi-char_0 otherwise.
.fchar _ \
-\R'dvi-char_ ((\\n[.f] == \f[CW]\\n[.f]\f[P]) : \
- (\\n[.f] == \f[CWI]\\n[.f]\f[P]))'\\*[dvi-char_\\n[dvi-char_]]
+\R'dvi-char_ ((\\n[.f] == \f[CW]\\n[.f]\f[]) : \
+ (\\n[.f] == \f[CWI]\\n[.f]\f[]))'\\*[dvi-char_\\n[dvi-char_]]
.fchar \[ul] \R'dvi-char_ \w'M'==\w'i''\\*[dvi-char_\\n[dvi-char_]]
.\" Normally use a rule.
.\" This is designed so that \(ul, \(rn and \(br form corners.
diff --git a/tmac/groff_www.man b/tmac/groff_www.man
index 3ac6baab..d659777d 100644
--- a/tmac/groff_www.man
+++ b/tmac/groff_www.man
@@ -155,7 +155,7 @@ If this is processed by a device other than
it appears as:
.RS
.IP
-\m[blue]foo\m[] \[la]\fChttp://foo.org\fP\[ra]:
+\m[blue]foo\m[] \[la]\f[C]http://foo.org\f[]\[ra]:
.RE
.IP
The URL macro can be of any type; for example we can reference
diff --git a/tmac/www.tmac b/tmac/www.tmac
index 479ea1e7..47237a95 100644
--- a/tmac/www.tmac
+++ b/tmac/www.tmac
@@ -72,7 +72,7 @@
. ie \\n[www-html] \
. HTML <a href="\\$1">\\$2</a>\\$3
. el \
-. nop \m[blue]\\$2\m[] \%\[la]\fC\\$1\fP\[ra]\\$3
+. nop \m[blue]\\$2\m[] \%\[la]\f[C]\\$1\f[]\[ra]\\$3
..
.\"
.\" FTP url description [after]
@@ -105,9 +105,9 @@
. \}
. el \{\
. ie '\\$2'' \
-. nop \%\m[blue]\fC\\$1\fP\m[]\\$3
+. nop \%\m[blue]\f[C]\\$1\f[]\m[]\\$3
. el \
-. nop \m[blue]\\$2\m[] \%\[la]\fC\\$1\fP\[ra]\\$3
+. nop \m[blue]\\$2\m[] \%\[la]\f[C]\\$1\f[]\[ra]\\$3
. \}
..
.\"
@@ -146,7 +146,7 @@
. HTML <img src="\\$1" width=\\n[www-width] height=\\n[www-height]>
. \}
. el \
-. nop \[la]\fC\\$1\fP\[ra]
+. nop \[la]\f[C]\\$1\f[]\[ra]
..
.\"
.\" HTML-TAG