-.\" $Id: roff.7,v 1.110 2018/12/16 01:34:56 schwarze Exp $
+.\" $Id: roff.7,v 1.116 2021/09/18 12:23:06 schwarze Exp $
.\"
.\" Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
-.\" Copyright (c) 2010-2018 Ingo Schwarze <schwarze@openbsd.org>
+.\" Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: December 16 2018 $
+.Dd $Mdocdate: September 18 2021 $
.Dt ROFF 7
.Os
.Sh NAME
The proper spacing is also intelligently preserved if a sentence ends at
the boundary of a macro line.
.Pp
+If an input line happens to end with a period, exclamation or question
+mark that isn't the end of a sentence, append a zero-width space
+.Pq Sq \e& .
+.Pp
Examples:
.Bd -literal -offset indent -compact
Do not end sentences mid-line like this. Instead,
end a sentence like this.
A macro would end like this:
\&.Xr mandoc 1 \&.
+An abbreviation at the end of an input line needs escaping, e.g.\e&
+like this.
.Ed
.Sh REQUEST SYNTAX
A request or macro line consists of:
.It Ic \&br
Break the output line.
.It Ic \&break
-Break out of a
+Break out of the innermost
.Ic \&while
loop.
-Currently unsupported.
.It Ic \&breakchar Ar char ...
Optional line break characters.
This is a Heirloom extension and currently ignored.
.Pp
or
.Bd -literal -offset indent
-.Pf . Ic \&de Ar macroname Ar endmacro
+.Pf . Ic \&de Ar macroname endmacro
.Ar definition
.Pf . Ar endmacro
.Ed
Enable or disable an OpenType feature.
This is a Heirloom extension and currently ignored.
.It Ic \&fi
-Switch to fill mode.
-See
-.Xr man 7 .
-Ignored in
-.Xr mdoc 7 .
+Break the output line and switch to fill mode,
+which is active by default but can be ended with the
+.Ic \&nf
+request.
+In fill mode, input from subsequent input lines is added to
+the same output line until the next word no longer fits,
+at which point the output line is broken.
+This request is implied by the
+.Xr mdoc 7
+.Ic \&Sh
+macro and by the
+.Xr man 7
+.Ic \&SH ,
+.Ic \&SS ,
+and
+.Ic \&EE
+macros.
.It Ic \&fkern Ar font minkern
Control the use of kerning tables for a font.
This is a Heirloom extension and currently ignored.
before the next trap or the bottom of the page.
Currently ignored.
.It Ic \&nf
-Switch to no-fill mode.
-See
-.Xr man 7 .
-Ignored by
-.Xr mdoc 7 .
+Break the output line and switch to no-fill mode.
+Subsequent input lines are kept together on the same output line
+even when exceeding the right margin,
+and line breaks in subsequent input cause output line breaks.
+This request is implied by the
+.Xr mdoc 7
+.Ic \&Bd Fl unfilled
+and
+.Ic \&Bd Fl literal
+macros and by the
+.Xr man 7
+.Ic \&EX
+macro.
+The
+.Ic \&fi
+request switches back to the default fill mode.
.It Ic \&nh
Turn off automatic hyphenation mode.
Currently ignored.
.Pp
The special semantics of the
.Cm nS
-number register is an idiosyncracy of
+number register is an idiosyncrasy of
.Ox
manuals and not supported by other
.Xr mdoc 7
.At v2 ,
then ported nroff to C as troff, which Brian W. Kernighan released with
.At v7 .
-In 1989, James Clarke re-implemented troff in C++, naming it groff.
+In 1989, James Clark re-implemented troff in C++, naming it groff.
.Sh AUTHORS
.An -nosplit
This