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) -.-