Package: sudoku
Version: 1.0.5-2.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?

troff:<stdin>:5779: warning: start index (-1) of substring out of range, set to 0
troff:<stdin>:5813: warning: start index (-1) of substring out of range, set to 0

   * 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 sudoku depends on:
ii  libc6        2.40-6
ii  libncurses6  6.5+20250125-2
ii  libtinfo6    6.5+20250125-2

sudoku recommends no packages.

sudoku suggests no packages.

-- no debconf information
Input file is sudoku.6

Output from "mandoc -T lint  sudoku.6": (shortened list)


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

      1 missing date, using "": TH
      1 whitespace at end of input line

-.-.

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

      8         Use macro '.B' for one argument or split argument.
      8 .BI is for at least 2 arguments, got 1
      2 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

1

-.-.

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.

sudoku.6:38:with the digits 1-9, so that each row, column, and block contains
sudoku.6:39:each of the digits 1-9 (and hence, it is not possible for any digit 
to

-.-.

Remove space in the first column, if not indented.
Use ".in +<number>n" and ".in" to end it; ".nf" and ".fi" to end
it, for an extra indention.

sudoku.6:45:  5 . \fIa\fR | 6 \fIb\fR 1 | . . .       The digits appearing in 
each of the
sudoku.6:46:  7 9 . | . . . | \fIc\fR 6 8       squares `\fIa\fR'-`\fIh\fR' can 
be uniquely
sudoku.6:47:  \fId\fR 3 . | . 8 . | 7 . .       determined. For example, the 
value
sudoku.6:48: -------+-------+-------      at `\fIa\fR' must be 8, since an 8 
appears
sudoku.6:49:  . 5 . | 4 1 \fIe\fR | . . 2       in the other rows and columns 
of the
sudoku.6:50:  . . 1 | \fIf\fR \fIx\fR . | 6 . .       block. Using similar 
logic, it must
sudoku.6:51:  8 . . | . 3 7 | . 4 .       be true that:
sudoku.6:52: -------+-------+-------           \fIb\fR = 7        \fIf\fR = 8
sudoku.6:53:  . . 4 | . 9 . | \fIg\fR 2 .            \fIc\fR = 1        \fIg\fR 
= 8
sudoku.6:54:  2 8 \fIh\fR | . . . | . 9 7            \fId\fR = 1        \fIh\fR 
= 5
sudoku.6:55:  . . . | 5 \fIi\fR 8 | . . 6            \fIe\fR = 6        \fIi\fR 
= 2
sudoku.6:62:  5 . 8 | 6 7 1 | . . .    It is now possible to determine the 
values
sudoku.6:63:  7 9 . | . . . | 1 6 8    appearing in other empty squares.
sudoku.6:64:  1 3 . | . 8 . | 7 . .
sudoku.6:65: -------+-------+-------
sudoku.6:66:  . 5 . | 4 1 6 | . . 2
sudoku.6:67:  . . 1 | 8 \fIx\fR . | 6 . .    <<< the value of \fIx\fR must now 
be 5.
sudoku.6:68:  8 . . | . 3 7 | . 4 .
sudoku.6:69: -------+-------+-------
sudoku.6:70:  . . 4 | . 9 . | 8 2 .
sudoku.6:71:  2 8 5 | . . . | . 9 7
sudoku.6:72:  . . . | 5 2 8 | . . 6
sudoku.6:76:  5 4 8 | 6 7 1 | 2 3 9
sudoku.6:77:  7 9 2 | 3 4 5 | 1 6 8
sudoku.6:78:  1 3 6 | 9 8 2 | 7 5 4
sudoku.6:79: -------+-------+-------
sudoku.6:80:  3 5 7 | 4 1 6 | 9 8 2
sudoku.6:81:  4 2 1 | 8 5 9 | 6 7 3
sudoku.6:82:  8 6 9 | 2 3 7 | 5 4 1
sudoku.6:83: -------+-------+-------
sudoku.6:84:  6 1 4 | 7 9 3 | 8 2 5
sudoku.6:85:  2 8 5 | 1 6 4 | 3 9 7
sudoku.6:86:  9 7 3 | 5 2 8 | 4 1 6
sudoku.6:124:    v v v
sudoku.6:126:    . . 7 | . . \fB9\fR | . . .
sudoku.6:127:    \fB9\fR . \fB6\fR | 7 \fB4\fR . | . \fB1\fR \fB5\fR
sudoku.6:128:    . . \fB2\fR | \fB5\fR \fB1\fR . | . . .
sudoku.6:129:   -------+-------+-------
sudoku.6:130: >  \fB6\fR . \fB5\fR | . 7 . | . . \fB8\fR  <    \fIThe 
characters ><v^ highlight the\fR
sudoku.6:131: >  . \fB7\fR . | . . . | . \fB3\fR .  <    \fIarea of the hint\fR
sudoku.6:132: >  \fB8\fR . . | . . . | \fB7\fR . \fB6\fR  <
sudoku.6:133:   -------+-------+-------
sudoku.6:134:    . . . | . \fB6\fR \fB7\fR | \fB8\fR . .
sudoku.6:135:    \fB7\fR \fB4\fR . | . \fB5\fR . | \fB9\fR 6 \fB2\fR
sudoku.6:136:    . 6 . | \fB4\fR . . | . . .
sudoku.6:138:    ^ ^ ^

-.-.

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

107:A custom board (e.g. found on the internet, or published in a newspaper)

-.-.

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.

37:9 blocks of 3x3 squares. The objective is to fill the empty squares
92:library). The board is displayed in the middle of the screen, along with
93:a summary of the allowed key presses. The cursor can be moved around the
107:A custom board (e.g. found on the internet, or published in a newspaper)
111:squares by pressing the `\fIf\fR' key. At this point, the entered squares
115:assistance in solving the board. It attempts to highlight areas of the
116:board where moves can be made. If repeated hints are requested, the
121:Often the hints can be quite cryptic. For example, consider the board
150:Describe the moves needed to solve the board. Can only be used with the
157:Set output format. The supported formats are:
174:No random boards generated in the interactive game. Requires the optional
184:the difficulty of solving the boards. Can be used with the
189:Set the template file. The file set on the command line will be used 
223:boards. Each pattern is started by a line with a leading `%' character,
224:and consists of 9 lines of 9 characters. The character `.' represents a
229:representations of game boards. Each board is started by a line with a
231:is displayed when the game is played. This is followed by 9 lines of
234:is initially displayed. The
242:additional characters to delimit the blocks in the board. The
251:boards into a spreadsheet. It represents each board by 9 lines of
252:comma separated fields. Each field is blank, or contains a digit.
258:option is set. Unlike the standard or compact text formats, there
264:boards. The
269:option is set. Unlike the standard or compact text formats, it is
274:boards. The
279:option is set. Unlike the standard or compact text formats, it is
296:the public domain by Michael Kennett, July 2005. They may be used

-.-.

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 130, length 89

 >  \fB6\fR . \fB5\fR | . 7 . | . . \fB8\fR  <    \fIThe characters ><v^ 
 > highlight the\fR

-.-.

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.

sudoku.6:58:with the given information - it could take either the value 2 or 5.

-.-.

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


sudoku.6:107:A custom board (e.g. found on the internet, or published in a 
newspaper)
sudoku.6:112:will be fixed (and cannot be changed).
sudoku.6:171:boards (or just 1 board, if not specified) and write them to 
standard output.

-.-.

No space is needed before a quote (") at the end of a macro line

11:.RI [ options "] ... "

-.-.

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.

113:.SS "Hints"
168:.BI \-g "[<num>]"
188:.BI \-t "<filename>"

-.-.

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

87:.SH "GAME INTERFACE"
101:.SS "Generating a New Board"
106:.SS "Entering a Custom Board"
113:.SS "Hints"
218:.SH "FILE FORMATS"
227:.SS "Compact text format"
240:.SS "Standard text format"
248:.SS "Comma separated text format"
261:.SS "Postscript format"
271:.SS "HTML format"
281:.SH "SEE ALSO"

-.-.

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

an.tmac:<stdin>:4: style: .TH missing third argument; consider document 
modification date in ISO 8601 format (YYYY-MM-DD)
an.tmac:<stdin>:4: style: .TH missing fourth argument; consider package/project 
name and version (e.g., "groff 1.23.0")
troff:<stdin>:11: warning: trailing space in the line
an.tmac:<stdin>:45: style: 2 leading space(s) on input line
an.tmac:<stdin>:46: style: 2 leading space(s) on input line
an.tmac:<stdin>:47: style: 2 leading space(s) on input line
an.tmac:<stdin>:48: style: 1 leading space(s) on input line
an.tmac:<stdin>:49: style: 2 leading space(s) on input line
an.tmac:<stdin>:50: style: 2 leading space(s) on input line
an.tmac:<stdin>:51: style: 2 leading space(s) on input line
an.tmac:<stdin>:52: style: 1 leading space(s) on input line
an.tmac:<stdin>:53: style: 2 leading space(s) on input line
an.tmac:<stdin>:54: style: 2 leading space(s) on input line
an.tmac:<stdin>:55: style: 2 leading space(s) on input line
an.tmac:<stdin>:62: style: 2 leading space(s) on input line
an.tmac:<stdin>:63: style: 2 leading space(s) on input line
an.tmac:<stdin>:64: style: 2 leading space(s) on input line
an.tmac:<stdin>:65: style: 1 leading space(s) on input line
an.tmac:<stdin>:66: style: 2 leading space(s) on input line
an.tmac:<stdin>:67: style: 2 leading space(s) on input line
an.tmac:<stdin>:68: style: 2 leading space(s) on input line
an.tmac:<stdin>:69: style: 1 leading space(s) on input line
an.tmac:<stdin>:70: style: 2 leading space(s) on input line
an.tmac:<stdin>:71: style: 2 leading space(s) on input line
an.tmac:<stdin>:72: style: 2 leading space(s) on input line
an.tmac:<stdin>:76: style: 2 leading space(s) on input line
an.tmac:<stdin>:77: style: 2 leading space(s) on input line
an.tmac:<stdin>:78: style: 2 leading space(s) on input line
an.tmac:<stdin>:79: style: 1 leading space(s) on input line
an.tmac:<stdin>:80: style: 2 leading space(s) on input line
an.tmac:<stdin>:81: style: 2 leading space(s) on input line
an.tmac:<stdin>:82: style: 2 leading space(s) on input line
an.tmac:<stdin>:83: style: 1 leading space(s) on input line
an.tmac:<stdin>:84: style: 2 leading space(s) on input line
an.tmac:<stdin>:85: style: 2 leading space(s) on input line
an.tmac:<stdin>:86: style: 2 leading space(s) on input line
an.tmac:<stdin>:124: style: 4 leading space(s) on input line
an.tmac:<stdin>:126: style: 4 leading space(s) on input line
an.tmac:<stdin>:127: style: 4 leading space(s) on input line
an.tmac:<stdin>:128: style: 4 leading space(s) on input line
an.tmac:<stdin>:129: style: 3 leading space(s) on input line
an.tmac:<stdin>:130: style: 1 leading space(s) on input line
an.tmac:<stdin>:131: style: 1 leading space(s) on input line
an.tmac:<stdin>:132: style: 1 leading space(s) on input line
an.tmac:<stdin>:133: style: 3 leading space(s) on input line
an.tmac:<stdin>:134: style: 4 leading space(s) on input line
an.tmac:<stdin>:135: style: 4 leading space(s) on input line
an.tmac:<stdin>:136: style: 4 leading space(s) on input line
an.tmac:<stdin>:138: style: 4 leading space(s) on input line
an.tmac:<stdin>:149: misuse, warning: .BI is for at least 2 arguments, got 1
        Use macro '.B' for one argument or split argument.
an.tmac:<stdin>:173: misuse, warning: .BI is for at least 2 arguments, got 1
        Use macro '.B' for one argument or split argument.
an.tmac:<stdin>:177: misuse, warning: .BI is for at least 2 arguments, got 1
        Use macro '.B' for one argument or split argument.
an.tmac:<stdin>:180: misuse, warning: .BI is for at least 2 arguments, got 1
        Use macro '.B' for one argument or split argument.
troff:<stdin>:189: warning: trailing space in the line
an.tmac:<stdin>:192: misuse, warning: .BI is for at least 2 arguments, got 1
        Use macro '.B' for one argument or split argument.
an.tmac:<stdin>:202: misuse, warning: .BI is for at least 2 arguments, got 1
        Use macro '.B' for one argument or split argument.
an.tmac:<stdin>:213: misuse, warning: .BI is for at least 2 arguments, got 1
        Use macro '.B' for one argument or split argument.
an.tmac:<stdin>:216: misuse, warning: .BI is for at least 2 arguments, got 1
        Use macro '.B' for one argument or split argument.

-.-.

Generally:

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

-.-
  Add a line for "man" to use use the tbl preprocessor.

  Replace crude table with 'tbl' preprocessor input.

  Make some editorial changes.

Signed-off-by: Bjarni Ingi Gislason <bjarn...@simnet.is>

---
diff --git a/sudoku.6 b/sudoku.6.new
index 91d0d16..7c60940 100644
--- a/sudoku.6
+++ b/sudoku.6.new
@@ -8,7 +8,7 @@ sudoku \- sudoku board game
 (play the game)
 .RS
 .B sudoku
-.RI [ options "] ... "
+.RI [ options "] ...\&"
 .RI [ <filename> ]
 .RE
 .PP
@@ -35,56 +35,105 @@ The
 .B sudoku
 board game is played on a 9x9 grid, divided into rows, columns, and
 9 blocks of 3x3 squares. The objective is to fill the empty squares
-with the digits 1-9, so that each row, column, and block contains
-each of the digits 1-9 (and hence, it is not possible for any digit to
+with the digits 1\(en9, so that each row, column, and block contains
+each of the digits 1\(en9 (and hence, it is not possible for any digit to
 appear twice in the same row, column or block).
 .SH EXAMPLE
 Consider the following board, and the squares marked `\fIa\fR'-`\fIh\fR'
 and `\fIx\fR':
 
-  5 . \fIa\fR | 6 \fIb\fR 1 | . . .       The digits appearing in each of the
-  7 9 . | . . . | \fIc\fR 6 8       squares `\fIa\fR'-`\fIh\fR' can be uniquely
-  \fId\fR 3 . | . 8 . | 7 . .       determined. For example, the value
- -------+-------+-------      at `\fIa\fR' must be 8, since an 8 appears
-  . 5 . | 4 1 \fIe\fR | . . 2       in the other rows and columns of the
-  . . 1 | \fIf\fR \fIx\fR . | 6 . .       block. Using similar logic, it must
-  8 . . | . 3 7 | . 4 .       be true that:
- -------+-------+-------           \fIb\fR = 7        \fIf\fR = 8
-  . . 4 | . 9 . | \fIg\fR 2 .            \fIc\fR = 1        \fIg\fR = 8
-  2 8 \fIh\fR | . . . | . 9 7            \fId\fR = 1        \fIh\fR = 5
-  . . . | 5 \fIi\fR 8 | . . 6            \fIe\fR = 6        \fIi\fR = 2
+.RS 2m
+.TS
+tab(@) ;
+l1 l1 l | l1 l1 l | l1 l1 l l
+l l l | l l l | l l l l
+l l l | l l l | l l l l
+_ _ _ _ _ _ _ _ _
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+_ _ _ _ _ _ _ _ _ 
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l .
+5@.@\fIa\fR@6@\fIb\fR@1@.@.@.@    The digits appearing in each of the
+7@9@.@.@.@.@\fIc\fR@6@8@    squares `\fIa\fR'-`\fIi\fR' can be uniquely
+\fId\fR@3@.@.@8@.@7@.@.@    determined. For example, the value
+@@@@@@@@@    at `\fIa\fR' must be 8, since an 8 appears
+\&.@5@.@4@1@\fIe\fR@.@.@2@    in the other rows and columns of the
+\&.@.@1@\fIf\fR@\fIx\fR@.@6@.@.@    block. Using similar logic, it must
+8@.@.@.@3@7@.@4@.@    be true that:
+@@@@@@@@@         \fIb\fR = 7        \fIf\fR = 8
+\&.@.@4@.@9@.@\fIg\fR@2@.@         \fIc\fR = 1        \fIg\fR = 8
+2@8@\fIh\fR@.@.@.@.@9@7@         \fId\fR = 1        \fIh\fR = 5
+\&.@.@.@5@\fIi\fR@8@.@.@6@         \fIe\fR = 6        \fIi\fR = 2
+.TE
+.RE
 
 In contrast, it is not possible to uniquely determine the value of `\fIx\fR'
 with the given information - it could take either the value 2 or 5.
 .bp
 The board now contains the squares:
 
-  5 . 8 | 6 7 1 | . . .    It is now possible to determine the values
-  7 9 . | . . . | 1 6 8    appearing in other empty squares.
-  1 3 . | . 8 . | 7 . .
- -------+-------+-------
-  . 5 . | 4 1 6 | . . 2
-  . . 1 | 8 \fIx\fR . | 6 . .    <<< the value of \fIx\fR must now be 5.
-  8 . . | . 3 7 | . 4 .
- -------+-------+-------
-  . . 4 | . 9 . | 8 2 .
-  2 8 5 | . . . | . 9 7
-  . . . | 5 2 8 | . . 6
+.RS 2m
+.TS
+tab(@) ;
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+_ _ _ _ _ _ _ _ _
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+_ _ _ _ _ _ _ _ _ 
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l .
+5@.@8@6@7@1@.@.@.@ It is now possible to determine the values
+7@9@.@.@.@.@1@6@8@ appearing in other empty squares.
+1@3@.@.@8@.@7@.@.@
+@@@@@@@@@
+\&.@5@.@4@1@6@.@.@2@
+\&.@.@1@8@\fIx\fR@.@6@.@.@ <<< the value of \fIx\fR must now be 5.
+8@.@.@.@3@7@.@4@.@
+@@@@@@@@@
+\&.@.@4@.@9@.@8@2@.@
+2@8@5@.@.@.@.@9@7@
+\&.@.@.@5@2@8@.@.@6
+.TE
+.RE
 
 Repeating this process a few more times reveals the solution:
 
-  5 4 8 | 6 7 1 | 2 3 9
-  7 9 2 | 3 4 5 | 1 6 8
-  1 3 6 | 9 8 2 | 7 5 4
- -------+-------+-------
-  3 5 7 | 4 1 6 | 9 8 2
-  4 2 1 | 8 5 9 | 6 7 3
-  8 6 9 | 2 3 7 | 5 4 1
- -------+-------+-------
-  6 1 4 | 7 9 3 | 8 2 5
-  2 8 5 | 1 6 4 | 3 9 7
-  9 7 3 | 5 2 8 | 4 1 6
-.SH "GAME INTERFACE"
+.RS 2m
+.TS
+tab(@) ;
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+_ _ _ _ _ _ _ _ _
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+_ _ _ _ _ _ _ _ _ 
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l
+l1 l1 l | l1 l1 l | l1 l1 l l .
+5@4@8@6@7@1@2@3@9@
+7@9@2@3@4@5@1@6@8@
+1@3@6@9@8@2@7@5@4@
+@@@@@@@@@
+3@5@7@4@1@6@9@8@2@
+4@2@1@8@5@9@6@7@3@
+8@6@9@2@3@7@5@4@1@
+@@@@@@@@@
+6@1@4@7@9@3@8@2@5@
+2@8@5@1@6@4@3@9@7@
+9@7@3@5@2@8@4@1@6
+.TE
+.RE
+
+.SH GAME INTERFACE
 The
 .B sudoku
 game has a simple text interface (using the
@@ -98,19 +147,19 @@ are initially revealed) can be set to a given digit by 
pressing the
 corresponding number key, or cleared by pressing either the `\fI0\fR' or
 `\fI.\fR'
 keys.
-.SS "Generating a New Board"
+.SS Generating a New Board
 A new board can be generated at any time by pressing the `\fIn\fR' key, and
 either a \fIprecanned\fR or randomly generated board will be displayed.
 If the \fB\-n\fR command line option is set, then only \fIprecanned\fR boards
 will be displayed.
-.SS "Entering a Custom Board"
-A custom board (e.g. found on the internet, or published in a newspaper)
+.SS Entering a Custom Board
+A custom board (e.g.\& found on the internet, or published in a newspaper)
 can be entered into the game by first clearing the current board (press
 the `\fIc\fR' key), entering the published squares (using the cursor
 motion keys and entering the appropriate numbers), and then fixing the
 squares by pressing the `\fIf\fR' key. At this point, the entered squares
 will be fixed (and cannot be changed).
-.SS "Hints"
+.SS Hints
 The interactive game provides a simple hint mechanism to provide
 assistance in solving the board. It attempts to highlight areas of the
 board where moves can be made. If repeated hints are requested, the
@@ -146,7 +195,7 @@ obvious, with the revealed squares, where the 3 goes.
 Generate a board until it finds a board of the specified class.
 Supported classes are: very easy, easy, medium, hard, and fiendish.
 .TP
-.BI \-d
+.B \-d
 Describe the moves needed to solve the board. Can only be used with the
 .B \-v
 option for solving
@@ -165,19 +214,19 @@ Set output format. The supported formats are:
     \fBhtml\fR        Simple HTML.
 .fi
 .TP
-.BI \-g "[<num>]"
+.BR \-g [ \fI<num>\fR ]
 Generate
 .I <num>
 boards (or just 1 board, if not specified) and write them to standard output.
 .TP
-.BI \-n
+.B \-n
 No random boards generated in the interactive game. Requires the optional
 file of \fIprecanned\fR boards to be specified.
 .TP
-.BI \-r
+.B \-r
 Run in restricted mode, disallowing any games to be saved.
 .TP
-.BI \-s
+.B \-s
 Calculate statistics for the
 .I precanned
 boards, and attempt to classify
@@ -185,11 +234,11 @@ the difficulty of solving the boards. Can be used with the
 .B \-v
 option.
 .TP
-.BI \-t "<filename>"
-Set the template file. The file set on the command line will be used 
+.BI \-t <filename>
+Set the template file. The file set on the command line will be used
 instead of the default template file.
 .TP
-.BI \-v
+.B \-v
 Solve
 .I precanned
 boards, writing the solution to standard output.
@@ -199,7 +248,7 @@ Name of the optional file containing
 .I precanned
 boards.
 .TP
-.BI \-w
+.B \-w
 Write
 .I default template
 to the working directory if it doesn't exist yet.
@@ -210,12 +259,12 @@ No environment variables are used directly by the
 program.
 .SH FILES
 .TP
-.BI /usr/share/sudoku/template
+.B /usr/share/sudoku/template
 Template file for generating new sudoku boards.
 .TP
-.BI /usr/share/sudoku/precanned
+.B /usr/share/sudoku/precanned
 Optional file, containing `precanned' sudoku boards.
-.SH "FILE FORMATS"
+.SH FILE FORMATS
 .SS /usr/share/sudoku/template
 The template file contains a sequence of patterns that are used for
 generating new
@@ -224,7 +273,7 @@ boards. Each pattern is started by a line with a leading 
`%' character,
 and consists of 9 lines of 9 characters. The character `.' represents a
 square that is initially blank, and the character `*' represents a square
 with a digit that is initially displayed.
-.SS "Compact text format"
+.SS Compact text format
 This format is similar to that of the template file, but contains
 representations of game boards. Each board is started by a line with a
 leading `%' character, followed by an optional title for the board that
@@ -237,7 +286,7 @@ program can read precanned files in this format, and will 
write them
 when the
 .B \-fcompact
 option is set.
-.SS "Standard text format"
+.SS Standard text format
 This format is very similar to the compact text format, but includes
 additional characters to delimit the blocks in the board. The
 .B sudoku
@@ -245,7 +294,7 @@ program can read precanned files in this format, and writes 
them by
 default, unless another output format is set by the
 .B \-f
 option.
-.SS "Comma separated text format"
+.SS Comma separated text format
 This format is useful for importing
 .B sudoku
 boards into a spreadsheet. It represents each board by 9 lines of
@@ -258,7 +307,7 @@ when the
 option is set. Unlike the standard or compact text formats, there
 are no lines separating boards, and hence, it is really only feasible
 to store one board per file.
-.SS "Postscript format"
+.SS Postscript format
 This format is useful for printing out
 .B sudoku
 boards. The
@@ -268,7 +317,7 @@ when the
 .B \-fpostscript
 option is set. Unlike the standard or compact text formats, it is
 not possible to store multiple boards in the same file.
-.SS "HTML format"
+.SS HTML format
 This format is useful for printing out
 .B sudoku
 boards. The
@@ -278,7 +327,7 @@ when the
 .B \-fhtml
 option is set. Unlike the standard or compact text formats, it is
 not possible to store multiple boards in the same file.
-.SH "SEE ALSO"
+.SH SEE ALSO
 There are a large number of websites dedicated to the
 .B sudoku
 puzzle that can be found easily using a search engine.
@@ -296,5 +345,3 @@ This manual page, and all associated files, have been 
placed into
 the public domain by Michael Kennett, July 2005. They may be used
 by anybody for any purpose whatsoever, however \fBNO WARRANTY\fR, of any
 sort, applies to this work.
-
-
  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