xref: /netbsd/share/man/tools/README (revision 6550d01e)
1This directory contains 14 shell procedures designed to carry out
2various verification and regeneration tasks on the UNIX User's
3Manual.  The outputs of all procedures are left in files in
4/_u_s_r/_m_a_n/_t_m_p; `tocrc (see below) also leaves output in
5/_u_s_r/_m_a_n/_m_a_n_0.  By default, these procedures operate on all 8
6sections of the manual.  The options `-s' and `-f' are available
7(except in `mgrep' and `tocrc') to restrict the list of sections
8and/or files to be used.  For example:
9
10          ckspell -s 1 2 3 -f a\*
11
12will check spelling in all files whose names begin with `a' in
13Sections 1-3.  Two additional options, `-m' and `-t', can be used
14to change the shell procedures' idea of where the manual and its
15`tmp' directory reside.  For example:
16
17          list -m /usr/aman -t /usr/aman/tmp
18
19might be meaningful if, for instance, an alternate manual is
20located in /_u_s_r/_a_m_a_n.  These options are also useful when a new
21manual is being built in a secluded place.
22
23Note that some of the shell procedures produce 8 result files,
24one for each section of the manual.  In particular, the 4 shell
25procedures prefaced with `ck', which perform different types of
26verification, produce a unique sorted list for each section, as
27opposed to a file-by-file list.  This means that one must search
28all the files in a section (using `grep', most likely) for
29occurrences of a particular string.
30
31Occasionally, some of these procedures will produce lines of
32spurious output.  This happens when, for instance, some text
33looks like a cross-reference or a file name, e.g., `array(3)' or
34`nroff/troff'.
35
36The following describes these 14 procedures:
37
381.  ckcrefs
39    Locates all cross-references to other manual entries and
40    checks to see whether the referenced pages exist.  Produces
41    files _b_a_d_c_r_e_f[_1-_8] containing all bad cross-references in
42    each section.  Also produces files _l_o_w_e_r._s_u_f[_1-_8], containing
43    occurrences of lower-case section suffixes, i.e., 1c, 1m, 3c,
44    which should be changed to upper-case (1C, 1M, 3C, etc.).
45
462.  ckfrefs
47    Locates all references in the FILES portion of manual entries
48    and checks to see whether the referenced files exist in the
49    running system.  Produces files _b_a_d_f_r_e_f[_1-_8] containing
50    references to non-existent files.  Note that file references
51    under headings other than FILES are _n_o_t checked.  Temporary
52    files will, of course, not be found.
53
543.  cknames
55    Performs various checks on the `.TH' line and the NAME
56    section of entries.  Note that the files produced by this
57    procedure contain the file names of entries that fail the
58    corresponding check:
59
60        Checks to see that the entry contains a `.SH NAME'
61        section, producing files _n_o._N_A_M_E[_1-_8].
62
63        Checks the NAME section of the entry to ensure that it is
64        exactly one line long (multi-line NAMEs will severely
65        confuse `tocrc'), producing files _n_o_t._o_n_e._l_i_n_e[_1-_8].
66
67        Checks to see that the entry contains a `.TH' line,
68        producing files _n_o._T_H[_1-_8].
69
70        Checks that the entry name and section given on the TH
71        line match the file name of that entry.  For example, a
72        file containing `.TH GURP 1M' should be called `gurp.1m'.
73        Produces files _f_i_l_e._m_a_t_c_h[_1-_8].
74
75        Checks that the first name appearing on the NAME line is
76        the same as the entry name on the TH line (`ckso' below
77        assumes that this is always true).  Produces files
78        _n_a_m_e._o_r_d_e_r[_1-_8].
79
804.  ckso
81    This procedure performs two types of verification of _n_r_o_f_f
82    `.so' pointers in /_u_s_r/_m_a_n/_m_a_n[_1-_8].  It first locates files
83    that contain only a `.so' reference to a real entry, and
84    checks to see whether that file (entry) exists.  Bad
85    references are written to the files _b_a_d_s_o[_1-_8].  Secondly,
86    `ckso' verifies the reverse; it locates each real entry,
87    looks at the NAME portion to see whether more than one name
88    appears there, and checks whether a file with a `.so'
89    reference exists for all such names other than the first.
90    Missing `.so' entries are written to the files _n_e_e_d_s_o[_1-_8].
91
925.  ckspell
93    Uses _s_p_e_l_l to check for spelling errors in manual
94    entries.  Produces file _s_p._e_r_r_s containing a section-by-
95    section list of errors.  Uses file /_u_s_r/_m_a_n/_t_o_o_l_s/_s_p._i_g_n_o_r_e
96    to eliminate strings that appear often in the manual and are
97    normally flagged as errors by `spell'.
98
996.  list
100    Produces file _l_i_s_t containing a `long' listing with block
101    counts (`ls -ls') for each section of the manual.
102
1037.  mcmp
104    Compares two versions of the manual and reports what files
105    are unique to each and whether or not the common files have
106    changed.  If the `-d' option is given, _d_i_f_f-style listings
107    are generated for each common file instead.  The `-o' option
108    is used to specify the name of the second manual directory;
109    /_u_s_r/_n_m_a_n is the default.  Produces files _c_m_p[_1-_8] or
110    _d_i_f_f[_1-_8].
111
1128.  mgrep
113    Searches entire manual for the patterns specified as
114    arguments (i.e., `mgrep "typewriter"').  Produces file _g_r_e_p_s,
115    containing section-by-section list for each pattern.
116
1179.  mklinks
118    Creates files containing appropriate `.so' links to major
119    entries where necessary.  These links point to their own
120    directory; don't run this procedure anywhere else than in
121    /_u_s_r/_m_a_n.  Should resolve all errors noted in _n_e_e_d_s_o[_1-_8]
122    (see `ckso' above).
123
12410. mroff
125    Uses the _m_a_n command to _t_r_o_f_f and typeset manual entries.
126    The `-p' (yes, `-p'!) option is used to produce entries in a
127    6x9 inch format, as opposed to the default 8.5x11.  Produces
128    files _m_l_o_g[_1-_8] containing logs of the files that were
129    processed.  _M_r_o_f_f ignores files that contain only a `.so'
130    line.
131
13211. pgcnt
133    Produces files _p_a_g_e_s[_1-_8] containing page counts for each
134    entry.  Also produces _t_o_t_a_l_p_g_s containing totals for each
135    section and a grand total.  The `-p' option should be used to
136    count pages in the small format (see `mroff' above).  Uses
137    the C program _p_a_g_e_s (compiled from _p_a_g_e_s._c).
138
13912. prnames
140    Produces files _n_a_m_e_s[_1-_8] containing the NAME portion of each
141    entry.
142
14313. prsynops
144    Produces files _s_y_n_o_p_s[_1-_8] containing the SYNOPSIS portion of
145    each entry.  A question mark means that the entry has no
146    SYNOPSIS portion.
147
14814. tocrc
149    Regenerates input for Table of Contents and Permuted Index.
150    Use `tocrc all' to regenerate both from scratch, `tocrc t' to
151    regenerate both from existing input files _t_o_c_x[_1-_8] in
152    /_u_s_r/_m_a_n/_t_m_p, or `tocrc [1-8]' to create, in /_u_s_r/_m_a_n/_t_m_p,
153    the corresponding input file _t_o_c_x[_1-_8].  The `-p' option
154    should be used when preparing the table of contents and/or
155    index in the small (6x9 inch) format (this option, if
156    present, _m_u_s_t be the first argument to `tocrc').  See
157    description in /_u_s_r/_m_a_n/_R_E_A_D._M_E of the files in
158    /_u_s_r/_m_a_n/_m_a_n_0.  Uses files _b_r_e_a_k and _i_g_n_o_r_e in
159    /_u_s_r/_m_a_n/_t_o_o_l_s.
160
161The file ._p_a_r_a_m is described in /_u_s_r/_m_a_n/_R_E_A_D._M_E.  The files
162_M._f_o_l_i_o and _M._t_a_b_s are self-explanatory.
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199