Package: net-tools
Version: 2.10-1.1
Severity: minor
Tags: patch

   * What led up to the situation?

     Checking for defects with a new version

test-[g|n]roff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z < "man 
page"

  [Use "groff -e ' $' -e '\\~$' <file>" to find obvious trailing spaces.]

  ["test-groff" is a script in the repository for "groff"; is not shipped]
(local copy and "troff" slightly changed by me).

  [The fate of "test-nroff" was decided in groff bug #55941.]

   * What was the outcome of this action?

Output from "test-groff  -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z 
":

troff:<stdin>:14: warning: trailing space in the line
troff:<stdin>:81: warning: trailing space in the line
troff:<stdin>:83: warning: trailing space in the line
troff:<stdin>:85: warning: trailing space in the line
troff:<stdin>:87: warning: trailing space in the line
troff:<stdin>:89: warning: trailing space in the line
troff:<stdin>:96: warning: trailing space in the line
troff:<stdin>:124: warning: trailing space in the line
troff:<stdin>:185: warning: trailing space in the line
troff:<stdin>:193: warning: trailing space in the line
troff:<stdin>:199: warning: trailing space in the line
troff:<stdin>:200: warning: trailing space in the line
troff:<stdin>:235: warning: trailing space in the line
troff:<stdin>:257: warning: trailing space in the line

   * What outcome did you expect instead?

     No output (no warnings).

-.-

  General remarks and further material, if a diff-file exist, are in the
attachments.


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.12-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), 
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages net-tools depends on:
ii  libc6        2.40-7
ii  libselinux1  3.8-3

net-tools recommends no packages.

net-tools suggests no packages.

-- no debconf information
Input file is route.8

Output from "mandoc -T lint  route.8": (shortened list)


      1 input text line longer than 80 bytes: Currently maintained...
      1 input text line longer than 80 bytes: This adds a IPv6 rou...
      1 input text line longer than 80 bytes: set the metric field...
      4 skipping paragraph macro: PP empty
     69 whitespace at end of input line

Remove trailing space with: sed -e 's/  *$//'

-.-.

Output from "test-groff -mandoc -t -ww -z route.8": (shortened list)


     14 trailing space in the line

Remove trailing space with: sed -e 's/  *$//'

-.-.

Remove space characters (whitespace) at the end of lines.
Use "git apply ... --whitespace=fix" to fix extra space issues, or use
global configuration "core.whitespace".

Number of lines affected is

69

-.-.

Change '-' (\-) to '\(en' (en-dash) for a (numeric) range.
GNU gnulib has recently (2023-06-18) updated its
"build_aux/update-copyright" to recognize "\(en" in man pages.

route.8:166:route to \fII\fR milliseconds (1-12000). This is typically only 
used on

-.-.

Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-),
if it
is in front of a name for an option,
is a symbol for standard input,
is a single character used to indicate an option,
or is in the NAME section (man-pages(7)).
N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen
(0x2010, groff \[u2010] or \[hy]) in the output.

152:set the metric field in the routing table (used by routing daemons) to 
\fIM\fR. If this option is not specified the metric for inet6 (IPv6) address 
family defaults to '1', for inet (IPv4) it defaults to '0'. You should always 
specify an explicit metric value to not rely on those defaults - they also 
differ from iproute2.
211:same as as seen in 'route -n' listing.
219:can reach "mango" - "mango" must be on directly reachable route.
242:.B route -6 add 2001:0002::/48 metric 1 dev eth0  

-.-.

Find a repeated word

! 211 --> as

-.-.

Add a "\&" (or a comma (Oxford comma)) after "e.g." and "i.e.",
or use English words
(man-pages(7)).
Abbreviation points should be marked as such and protected against being
interpreted as an end of sentence, if they are not, and that independent
of the current place on the line.

326:address is not needed for the interface of the cached route (e.g. lo).

-.-.

Wrong distance between sentences in the input file.

  Separate the sentences and subordinate clauses; each begins on a new
line.  See man-pages(7) ("Conventions for source file layout") and
"info groff" ("Input Conventions").

  The best procedure is to always start a new sentence on a new line,
at least, if you are typing on a computer.

Remember coding: Only one command ("sentence") on each (logical) line.

E-mail: Easier to quote exactly the relevant lines.

Generally: Easier to edit the sentence.

Patches: Less unaffected text.

Search for two adjacent words is easier, when they belong to the same line,
and the same phrase.

  The amount of space between sentences in the output can then be
controlled with the ".ss" request.

Mark a final abbreviation point as such by suffixing it with "\&".

Some sentences (etc.) do not begin on a new line.

Split (sometimes) lines after a punctuation mark; before a conjunction.

N.B.

  The number of lines affected can be too large to be in a patch.

  Lines with only one (or two) space(s) between sentences could be split,
so latter sentences begin on a new line.

Use

#!/usr/bin/sh

sed -e '/^\./n' \
-e 's/\([[:alpha:]]\)\.  */\1.\n/g' $1

to split lines after a sentence period.
Check result with the difference between the formatted outputs.
See also the attachment "general.bugs"

62:manipulates the kernel's IP routing tables.  Its primary use is to set
74:modifies the routing tables.  Without these options,
81:use the specified address family (eg `inet'). Use 
83:for a full list. You can use 
96:table. 
107:names. This is useful if you are trying to determine why the route to your
124:the destination network or host. You can provide an addresses or symbolic 
125:network or host name. Optionally you can use \fB/\fIprefixlen\fR notation
145:The specified gateway must be reachable first. This usually means that
146:you have to set up a static route to the gateway beforehand. If you specify
148:the interface to which the packets should be routed to. This is a BSDism
152:set the metric field in the routing table (used by routing daemons) to 
\fIM\fR. If this option is not specified the metric for inet6 (IPv6) address 
family defaults to '1', for inet (IPv4) it defaults to '0'. You should always 
specify an explicit metric value to not rely on those defaults - they also 
differ from iproute2.
161:bytes. This is typically only used on AX.25 networks and with drivers
166:route to \fII\fR milliseconds (1-12000). This is typically only used on
167:AX.25 networks. If omitted the RFC 1122 default of 300ms is used.
172:route. This is NOT for firewalling.
175:install a dynamic or modified route. These flags are for diagnostic
182:the route is added to). In most normal networks you won't need this.
187:may be omitted, as it's the default. Otherwise the order of the route
200:"eth0".  The word "dev" can be omitted here. 
209:deletes the route. Since the Linux routing kernel uses classless
217:named "mango". The
233:This is an obscure one documented so people know how to do it. This sets
234:all of the class D (multicast) IP routes to go via "eth0". This is the
235:correct normal configuration line with a multicasting kernel. 
304:Number of references to this route. (Not used in the Linux kernel.)
307:Count of lookups for the route.  Depending on the use of \-F and \-C this 
will
320:Initial RTT (Round Trip Time). The kernel uses this to guess about the best
325:header cache for the cached route. This will be \-1 if a hardware
326:address is not needed for the interface of the cached route (e.g. lo).
348:for Linux was originally written by Fred N.  van Kempen,
350:Linus Torvalds for pl15. Alan Cox added the mss and window options for
351:Linux 1.1.22. irtt support and merged with netstat from Bernd Eckenfels.

-.-.

Split lines longer than 80 characters into two or more lines.
Appropriate break points are the end of a sentence and a subordinate
clause; after punctuation marks.
Add "\:" to split the string for the output, "\<newline>" in the source.  

Line 152, length 322

set the metric field in the routing table (used by routing daemons) to \fIM\fR. 
If this option is not specified the metric for inet6 (IPv6) address family 
defaults to '1', for inet (IPv4) it defaults to '0'. You should always specify 
an explicit metric value to not rely on those defaults - they also differ from 
iproute2.

Line 243, length 83

This adds a IPv6 route with the specified metric to be directly reachable via 
eth0.

Line 353, length 111

Currently maintained by Phil Blundell <philip.blund...@pobox.com> and Bernd 
Eckenfels <net-to...@lina.inka.de>.


-.-.

Use \(en (en-dash) for a dash at the beginning (en) of a line,
or between space characters,
not a minus (\-) or a hyphen (-), except in the NAME section.

route.8:152:set the metric field in the routing table (used by routing daemons) 
to \fIM\fR. If this option is not specified the metric for inet6 (IPv6) address 
family defaults to '1', for inet (IPv4) it defaults to '0'. You should always 
specify an explicit metric value to not rely on those defaults - they also 
differ from iproute2.
route.8:219:can reach "mango" - "mango" must be on directly reachable route.

-.-.

Put a parenthetical sentence, phrase on a separate line,
if not part of a code.
See man-pages(7), item "semantic newline".

route.8:81:use the specified address family (eg `inet'). Use 
route.8:95:operate on the kernel's FIB (Forwarding Information Base) routing
route.8:152:set the metric field in the routing table (used by routing daemons) 
to \fIM\fR. If this option is not specified the metric for inet6 (IPv6) address 
family defaults to '1', for inet (IPv4) it defaults to '0'. You should always 
specify an explicit metric value to not rely on those defaults - they also 
differ from iproute2.
route.8:155:sets MTU (Maximum Transmission Unit) of the route to \fIM\fR bytes.
route.8:188:modifiers (\fBmetric netmask gw dev\fR) doesn't matter.
route.8:215:adds a default route (which will be used if no other route matches).
route.8:301:The 'distance' to the target (usually counted in hops).
route.8:304:Number of references to this route. (Not used in the Linux kernel.)
route.8:320:Initial RTT (Round Trip Time). The kernel uses this to guess about 
the best
route.8:321:TCP protocol parameters without waiting on (possibly slow) answers.
route.8:323:.B HH (cached only)
route.8:326:address is not needed for the interface of the cached route (e.g. 
lo).
route.8:328:.B Arp (cached only)

-.-.

Use a no-break space between a number and a (SI) unit

167:AX.25 networks. If omitted the RFC 1122 default of 300ms is used.

-.-.

Use thousand markers to make large numbers easy to read

166:route to \fII\fR milliseconds (1-12000). This is typically only used on

-.-.

Remove quotes when there is a printable
but no space character between them
and the quotes are not for emphasis (markup),
for example as an argument to a macro.

1:.TH ROUTE 8 "2014\-02\-17" "net\-tools" "Linux System Administrator's Manual"

-.-.

Space character after a macro call.

93:.TP 
98:.TP 
119:.TP 
153:.TP 
158:.TP 
197:.TP 

-.-.

Trailing space in a macro call.
Remove with "sed -i -e 's/  *$//'"

9:.RB | \-4 | \-6 ] 
11:.B route 
15:.RB | \-4 | \-6 ] 
16:.B add 
17:.RB [ \-net | \-host ] 
18:.I target 
19:.RB [ netmask 
20:.IR Nm ] 
21:.RB [ gw 
22:.IR Gw ] 
23:.RB [ metric 
24:.IR N ] 
25:.RB [ mss 
26:.IR M ] 
27:.RB [ window 
28:.IR W ] 
29:.RB [ irtt 
33:.RB [ dyn ] 
34:.RB [ reinstate ] 
35:.RB [[ dev ] 
38:.B route 
39:.RB [ \-v ] 
43:.B del 
44:.RB [ \-net | \-host ] 
45:.I target 
46:.RB [ gw 
47:.IR Gw ] 
48:.RB [ netmask 
49:.IR Nm ] 
50:.RB [ metric 
51:.IR M ] 
55:.B route 
56:.RB [ \-V ] 
84:.B \-6 
86:.B \-\-inet6 
88:.B \-4 
114:.B \-ee 
120:.B add 
135:.I target 
195:.BR ifconfig (8)). 
214:.B route add default gw mango 
242:.B route -6 add 2001:0002::/48 metric 1 dev eth0  
249:.B Destination     
255:.B Genmask         
261:.B Flags 
300:.B Metric 
303:.B Ref    
313:.B MSS 
316:.B Window  

-.-.

Section headings (.SH and .SS) do not need quoting.

338:.SH "SEE ALSO"

-.-.

Output from "test-groff  -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z 
":

troff:<stdin>:14: warning: trailing space in the line
troff:<stdin>:81: warning: trailing space in the line
troff:<stdin>:83: warning: trailing space in the line
troff:<stdin>:85: warning: trailing space in the line
troff:<stdin>:87: warning: trailing space in the line
troff:<stdin>:89: warning: trailing space in the line
troff:<stdin>:96: warning: trailing space in the line
troff:<stdin>:124: warning: trailing space in the line
troff:<stdin>:185: warning: trailing space in the line
troff:<stdin>:193: warning: trailing space in the line
troff:<stdin>:199: warning: trailing space in the line
troff:<stdin>:200: warning: trailing space in the line
troff:<stdin>:235: warning: trailing space in the line
troff:<stdin>:257: warning: trailing space in the line

-.-.

Additionally:

eg -> e.g.\&

-.-

Generally:

Split (sometimes) lines after a punctuation mark; before a conjunction.
--- route.8     2025-02-26 22:19:46.637169465 +0000
+++ route.8.new 2025-02-26 22:19:27.358092696 +0000
@@ -1,4 +1,4 @@
-.TH ROUTE 8 "2014\-02\-17" "net\-tools" "Linux System Administrator's Manual"
+.TH ROUTE 8 2014\-02\-17 net\-tools "Linux System Administrator's Manual"
 .SH NAME
 route \- show / manipulate the IP routing table
 .SH SYNOPSIS
@@ -6,54 +6,54 @@ route \- show / manipulate the IP routin
 .RB [ \-CFvnNee ]
 .RB [ \-A
 family
-.RB | \-4 | \-6 ] 
+.RB | \-4 | \-6 ]
 .TP
-.B route 
+.B route
 .RB [ \-v ]
 .RB [ \-A
-family 
-.RB | \-4 | \-6 ] 
-.B add 
-.RB [ \-net | \-host ] 
-.I target 
-.RB [ netmask 
-.IR Nm ] 
-.RB [ gw 
-.IR Gw ] 
-.RB [ metric 
-.IR N ] 
-.RB [ mss 
-.IR M ] 
-.RB [ window 
-.IR W ] 
-.RB [ irtt 
+family
+.RB | \-4 | \-6 ]
+.B add
+.RB [ \-net | \-host ]
+.I target
+.RB [ netmask
+.IR Nm ]
+.RB [ gw
+.IR Gw ]
+.RB [ metric
+.IR N ]
+.RB [ mss
+.IR M ]
+.RB [ window
+.IR W ]
+.RB [ irtt
 .IR I ]
 .RB [ reject ]
 .RB [ mod ]
-.RB [ dyn ] 
-.RB [ reinstate ] 
-.RB [[ dev ] 
+.RB [ dyn ]
+.RB [ reinstate ]
+.RB [[ dev ]
 .IR If ]
 .TP
-.B route 
-.RB [ \-v ] 
+.B route
+.RB [ \-v ]
 .RB [ \-A
 .I family
 .RB | \-4 | \-6 ]
-.B del 
-.RB [ \-net | \-host ] 
-.I target 
-.RB [ gw 
-.IR Gw ] 
-.RB [ netmask 
-.IR Nm ] 
-.RB [ metric 
-.IR M ] 
+.B del
+.RB [ \-net | \-host ]
+.I target
+.RB [ gw
+.IR Gw ]
+.RB [ netmask
+.IR Nm ]
+.RB [ metric
+.IR M ]
 .RB [[ dev ]
 .IR If ]
 .TP
-.B route 
-.RB [ \-V ] 
+.B route
+.RB [ \-V ]
 .RB [ \-\-version ]
 .RB [ \-h ]
 .RB [ \-\-help ]
@@ -78,24 +78,24 @@ displays the current contents of the rou
 .SH OPTIONS
 .TP
 \fB\-A \fIfamily\fR
-use the specified address family (eg `inet'). Use 
+use the specified address family (e.g.\& `inet'). Use
 .B route \-\-help
-for a full list. You can use 
-.B \-6 
-as an alias for 
-.B \-\-inet6 
-and 
-.B \-4 
-as an alias for 
+for a full list. You can use
+.B \-6
+as an alias for
+.B \-\-inet6
+and
+.B \-4
+as an alias for
 .B \-A inet
 .
 
-.TP 
+.TP
 .B \-F
 operate on the kernel's FIB (Forwarding Information Base) routing
-table. 
+table.
 This is the default.
-.TP 
+.TP
 .B \-C
 operate on the kernel's routing cache.
 .TP
@@ -111,17 +111,17 @@ nameserver has vanished.
 use
 .BR netstat (8)\-format
 for displaying the routing table.
-.B \-ee 
+.B \-ee
 will generate a very long line with all parameters from the routing table.
 .TP
 .B del
 delete a route.
-.TP 
-.B add 
+.TP
+.B add
 add a new route.
 .TP
 .I target
-the destination network or host. You can provide an addresses or symbolic 
+the destination network or host. You can provide an addresses or symbolic
 network or host name. Optionally you can use \fB/\fIprefixlen\fR notation
 instead of using the \fBnetmask\fR option.
 .TP
@@ -132,7 +132,7 @@ is a network.
 .TP
 .B \-host
 the
-.I target 
+.I target
 is a host.
 .TP
 \fBnetmask \fINM\fR
@@ -149,13 +149,13 @@ the interface to which the packets shoul
 compatibility hack.
 .TP
 \fBmetric \fIM\fR
-set the metric field in the routing table (used by routing daemons) to 
\fIM\fR. If this option is not specified the metric for inet6 (IPv6) address 
family defaults to '1', for inet (IPv4) it defaults to '0'. You should always 
specify an explicit metric value to not rely on those defaults - they also 
differ from iproute2.
-.TP 
+set the metric field in the routing table (used by routing daemons) to 
\fIM\fR. If this option is not specified the metric for inet6 (IPv6) address 
family defaults to '1', for inet (IPv4) it defaults to '0'. You should always 
specify an explicit metric value to not rely on those defaults \(en they also 
differ from iproute2.
+.TP
 \fBmss \fIM\fR
 sets MTU (Maximum Transmission Unit) of the route to \fIM\fR bytes.
 Note that the current implementation of the route command does not allow
 the option to set the Maximum Segment Size (MSS).
-.TP 
+.TP
 \fBwindow \fIW\fR
 set the TCP window size for connections over this route to \fIW\fR
 bytes. This is typically only used on AX.25 networks and with drivers
@@ -163,8 +163,8 @@ unable to handle back to back frames.
 .TP
 \fBirtt \fII\fR
 set the initial round trip time (irtt) for TCP connections over this
-route to \fII\fR milliseconds (1-12000). This is typically only used on
-AX.25 networks. If omitted the RFC 1122 default of 300ms is used.
+route to \fII\fR milliseconds (1\(en12.000). This is typically only used on
+AX.25 networks. If omitted the RFC 1122 default of 300\~ms is used.
 .TP
 .B reject
 install a blocking route, which will force a route lookup to fail.
@@ -182,7 +182,7 @@ checking already existing routes and dev
 the route is added to). In most normal networks you won't need this.
 
 If \fBdev \fIIf\fR
-is the last option on the command line, the word 
+is the last option on the command line, the word
 .B dev
 may be omitted, as it's the default. Otherwise the order of the route
 modifiers (\fBmetric netmask gw dev\fR) doesn't matter.
@@ -190,14 +190,14 @@ modifiers (\fBmetric netmask gw dev\fR)
 .SH EXAMPLES
 .TP
 .B route add \-net 127.0.0.0 netmask 255.0.0.0 metric 1024 dev lo
-adds the normal loopback entry, using netmask 255.0.0.0 and associated with 
the 
+adds the normal loopback entry, using netmask 255.0.0.0 and associated with the
 "lo" device (assuming this device was previously set up correctly with
-.BR ifconfig (8)). 
+.BR ifconfig (8)).
 
-.TP 
+.TP
 .B route add \-net 192.56.76.0 netmask 255.255.255.0 metric 1024 dev eth0
-adds a route to the local network 192.56.76.x via 
-"eth0".  The word "dev" can be omitted here. 
+adds a route to the local network 192.56.76.x via
+"eth0".  The word "dev" can be omitted here.
 
 .TP
 .B route del default
@@ -208,15 +208,15 @@ in the destination field of the current
 .B route del \-net 192.56.76.0 netmask 255.255.255.0
 deletes the route. Since the Linux routing kernel uses classless
 addressing, you pretty much always have to specify the netmask that is
-same as as seen in 'route -n' listing.
+same as seen in 'route \-n' listing.
 
 .TP
-.B route add default gw mango 
+.B route add default gw mango
 adds a default route (which will be used if no other route matches).
 All packets using this route will be gatewayed through the address of a node
 named "mango". The
 device which will actually be used for that route depends on how we
-can reach "mango" - "mango" must be on directly reachable route.
+can reach "mango" \(en "mango" must be on directly reachable route.
 
 .TP
 .B route add mango sl0
@@ -232,33 +232,32 @@ route to the SLIP interface.
 .B route add \-net 224.0.0.0 netmask 240.0.0.0 dev eth0
 This is an obscure one documented so people know how to do it. This sets
 all of the class D (multicast) IP routes to go via "eth0". This is the
-correct normal configuration line with a multicasting kernel. 
+correct normal configuration line with a multicasting kernel.
 
 .TP
 .B route add \-net 10.0.0.0 netmask 255.0.0.0 metric 1024 reject
 This installs a rejecting route for the private network "10.x.x.x."
 
 .TP
-.B route -6 add 2001:0002::/48 metric 1 dev eth0  
+.B route \-6 add 2001:0002::/48 metric 1 dev eth0
 This adds a IPv6 route with the specified metric to be directly reachable via 
eth0.
 
-.LP
 .SH OUTPUT
 The output of the kernel routing table is organized in the following columns
 .TP
-.B Destination     
+.B Destination
 The destination network or destination host.
 .TP
 .B Gateway
 The gateway address or '*' if none set.
 .TP
-.B Genmask         
+.B Genmask
 The netmask for the destination net; '255.255.255.255' for a host destination
-and '0.0.0.0' for the 
+and '0.0.0.0' for the
 .B default
 route.
 .TP
-.B Flags 
+.B Flags
 Possible flags include
 .br
 .B U
@@ -297,10 +296,10 @@ entry)
 .RB ( reject
 route)
 .TP
-.B Metric 
+.B Metric
 The 'distance' to the target (usually counted in hops).
 .TP
-.B Ref    
+.B Ref
 Number of references to this route. (Not used in the Linux kernel.)
 .TP
 .B Use
@@ -310,10 +309,10 @@ be either route cache misses (\-F) or hi
 .B Iface
 Interface to which packets for this route will be sent.
 .TP
-.B MSS 
+.B MSS
 Default maximum segment size for TCP connections over this route.
 .TP
-.B Window  
+.B Window
 Default window size for TCP connections over this route.
 .TP
 .B irtt
@@ -323,29 +322,26 @@ TCP protocol parameters without waiting
 .B HH (cached only)
 The number of ARP entries and cached routes that refer to the hardware
 header cache for the cached route. This will be \-1 if a hardware
-address is not needed for the interface of the cached route (e.g. lo).
+address is not needed for the interface of the cached route (e.g.\& lo).
 .TP
 .B Arp (cached only)
 Whether or not the hardware address for the cached route is up to date.
-.LP
 .SH FILES
 .I /proc/net/ipv6_route
 .br
 .I /proc/net/route
 .br
 .I /proc/net/rt_cache
-.LP
-.SH "SEE ALSO"
+.SH SEE ALSO
 .BR ethers (5),
 .BR arp (8),
 .BR rarp (8),
 .BR route (8),
 .BR ifconfig (8),
 .BR netstat (8)
-.LP
 .SH HISTORY
 .B Route
-for Linux was originally written by Fred N.  van Kempen,
+for Linux was originally written by Fred N.\& van Kempen,
 <wal...@uwalt.nl.mugnet.org> and then modified by Johannes Stille and
 Linus Torvalds for pl15. Alan Cox added the mss and window options for
 Linux 1.1.22. irtt support and merged with netstat from Bernd Eckenfels.
  Any program (person), that produces man pages, should check the output
for defects by using (both groff and nroff)

[gn]roff -mandoc -t -ww -b -z -K utf8 <man page>

  The same goes for man pages that are used as an input.

  For a style guide use

  mandoc -T lint

-.-

  Any "autogenerator" should check its products with the above mentioned
'groff', 'mandoc', and additionally with 'nroff ...'.

  It should also check its input files for too long (> 80) lines.

  This is just a simple quality control measure.

  The "autogenerator" may have to be corrected to get a better man page,
the source file may, and any additional file may.

  Common defects:

  Not removing trailing spaces (in in- and output).
  The reason for these trailing spaces should be found and eliminated.

  "git" has a "tool" to point out whitespace,
see for example "git-apply(1)" and git-config(1)")

  Not beginning each input sentence on a new line.
Line length and patch size should thus be reduced.

  The script "reportbug" uses 'quoted-printable' encoding when a line is
longer than 1024 characters in an 'ascii' file.

  See man-pages(7), item "semantic newline".

-.-

The difference between the formatted output of the original and patched file
can be seen with:

  nroff -mandoc <file1> > <out1>
  nroff -mandoc <file2> > <out2>
  diff -d -u <out1> <out2>

and for groff, using

\"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - \"

instead of 'nroff -mandoc'

  Add the option '-t', if the file contains a table.

  Read the output from 'diff -d -u ...' with 'less -R' or similar.

-.-.

  If 'man' (man-db) is used to check the manual for warnings,
the following must be set:

  The option \"-warnings=w\"

  The environmental variable:

export MAN_KEEP_STDERR=yes (or any non-empty value)

  or

  (produce only warnings):

export MANROFFOPT=\"-ww -b -z\"

export MAN_KEEP_STDERR=yes (or any non-empty value)

-.-

Reply via email to