xref: /netbsd-src/external/bsd/mdocml/dist/mandoc_headers.3 (revision 544c191c349c1704c9d5e679d12ec15cff579663)
1*544c191cSchristos.Dd December 30, 2018
2fec65c98Schristos.Dt MANDOC_HEADERS 3
3fec65c98Schristos.Os
4fec65c98Schristos.Sh NAME
5fec65c98Schristos.Nm mandoc_headers
6fec65c98Schristos.Nd ordering of mandoc include files
7fec65c98Schristos.Sh DESCRIPTION
8fec65c98SchristosTo support a cleaner coding style, the mandoc header files do not
9fec65c98Schristoscontain any include directives and do not guard against multiple
10fec65c98Schristosinclusion.
11fec65c98SchristosThe application developer has to make sure that the headers are
12fec65c98Schristosincluded in a proper order, and that no header is included more
13fec65c98Schristosthan once.
14fec65c98Schristos.Pp
15fec65c98SchristosThe headers and functions form three major groups:
16fec65c98Schristos.Sx Parser interface ,
17fec65c98Schristos.Sx Parser internals ,
18fec65c98Schristosand
19fec65c98Schristos.Sx Formatter interface .
20fec65c98Schristos.Pp
21fec65c98SchristosVarious rules are given below prohibiting the inclusion of certain
22fec65c98Schristoscombinations of headers into the same file.
23fec65c98SchristosThe intention is to keep the following functional components
24fec65c98Schristosseparate from each other:
25fec65c98Schristos.Pp
26fec65c98Schristos.Bl -dash -offset indent -compact
27fec65c98Schristos.It
28*544c191cSchristos.Xr roff 7
29*544c191cSchristosparser
30*544c191cSchristos.It
31fec65c98Schristos.Xr mdoc 7
32fec65c98Schristosparser
33fec65c98Schristos.It
34fec65c98Schristos.Xr man 7
35fec65c98Schristosparser
36fec65c98Schristos.It
37fec65c98Schristos.Xr tbl 7
38fec65c98Schristosparser
39fec65c98Schristos.It
40fec65c98Schristos.Xr eqn 7
41fec65c98Schristosparser
42fec65c98Schristos.It
43fec65c98Schristosterminal formatters
44fec65c98Schristos.It
45fec65c98SchristosHTML formatters
46fec65c98Schristos.It
47fec65c98Schristossearch tools
48*544c191cSchristos.It
49*544c191cSchristosmain programs
50fec65c98Schristos.El
51fec65c98Schristos.Pp
52fec65c98SchristosNote that mere usage of an opaque struct type does
53fec65c98Schristos.Em not
54fec65c98Schristosrequire inclusion of the header where that type is defined.
55fec65c98Schristos.Ss Parser interface
56fec65c98SchristosEach of the following headers can be included without including
57fec65c98Schristosany other mandoc header.
58fec65c98SchristosThese headers should be included before any other mandoc headers.
59fec65c98Schristos.Bl -tag -width Ds
60fec65c98Schristos.It Qq Pa mandoc_aux.h
61*544c191cSchristosMemory allocation utility functions; can be used everywhere.
62*544c191cSchristos.Pp
63fec65c98SchristosRequires
64fec65c98Schristos.In sys/types.h
65fec65c98Schristosfor
66fec65c98Schristos.Vt size_t .
67c9bcef03Schristos.Pp
68*544c191cSchristosProvides the functions documented in
69fec65c98Schristos.Xr mandoc_malloc 3 .
709ff1f2acSchristos.It Qq Pa mandoc_ohash.h
71*544c191cSchristosHashing utility functions; can be used everywhere.
72*544c191cSchristos.Pp
73c9bcef03SchristosRequires
74c9bcef03Schristos.In stddef.h
75c9bcef03Schristosfor
76c9bcef03Schristos.Vt ptrdiff_t
77c9bcef03Schristosand
78c9bcef03Schristos.In stdint.h
79c9bcef03Schristosfor
80c9bcef03Schristos.Vt uint32_t .
81c9bcef03Schristos.Pp
829ff1f2acSchristosIncludes
839ff1f2acSchristos.In ohash.h
849ff1f2acSchristosand provides
859ff1f2acSchristos.Fn mandoc_ohash_init .
86fec65c98Schristos.It Qq Pa mandoc.h
87*544c191cSchristosError handling, escape sequence, and character utilities;
88*544c191cSchristoscan be used everywhere.
89*544c191cSchristos.Pp
90fec65c98SchristosRequires
91fec65c98Schristos.In sys/types.h
92fec65c98Schristosfor
93*544c191cSchristos.Vt size_t
94*544c191cSchristosand
95*544c191cSchristos.In stdio.h
96*544c191cSchristosfor
97*544c191cSchristos.Vt FILE .
98fec65c98Schristos.Pp
99fec65c98SchristosProvides
100fec65c98Schristos.Vt enum mandoc_esc ,
101fec65c98Schristos.Vt enum mandocerr ,
102fec65c98Schristos.Vt enum mandoclevel ,
103fec65c98Schristosthe function
104fec65c98Schristos.Xr mandoc_escape 3 ,
105fec65c98Schristosthe functions described in
106fec65c98Schristos.Xr mchars_alloc 3 ,
107*544c191cSchristosand the
108*544c191cSchristos.Fn mandoc_msg*
109*544c191cSchristosfunctions.
1109ff1f2acSchristos.It Qq Pa roff.h
111*544c191cSchristosCommon data types for all syntax trees and related functions;
112*544c191cSchristoscan be used everywhere.
113c9bcef03Schristos.Pp
1149ff1f2acSchristosProvides
115*544c191cSchristos.Vt enum mandoc_os ,
1169ff1f2acSchristos.Vt enum mdoc_endbody ,
1179ff1f2acSchristos.Vt enum roff_macroset ,
1189ff1f2acSchristos.Vt enum roff_sec ,
119c9bcef03Schristos.Vt enum roff_tok ,
1209ff1f2acSchristos.Vt enum roff_type ,
1219ff1f2acSchristos.Vt struct roff_man ,
1229ff1f2acSchristos.Vt struct roff_meta ,
1239ff1f2acSchristos.Vt struct roff_node ,
124c9bcef03Schristosthe constant array
125c9bcef03Schristos.Va roff_name
126*544c191cSchristosand the function
127*544c191cSchristos.Fn deroff .
1289ff1f2acSchristos.Pp
1299ff1f2acSchristosUses pointers to the types
130*544c191cSchristos.Vt struct ohash
131*544c191cSchristosfrom
132*544c191cSchristos.Pa mandoc_ohash.h ,
1339ff1f2acSchristos.Vt struct mdoc_arg
134fec65c98Schristosand
1359ff1f2acSchristos.Vt union mdoc_data
136fec65c98Schristosfrom
137*544c191cSchristos.Pa mdoc.h ,
138*544c191cSchristos.Vt struct tbl_span
139*544c191cSchristosfrom
140*544c191cSchristos.Pa tbl.h ,
141*544c191cSchristosand
142*544c191cSchristos.Vt struct eqn_box
143*544c191cSchristosfrom
144*544c191cSchristos.Pa eqn.h
1459ff1f2acSchristosas opaque struct members.
146*544c191cSchristos.It Qq Pa tbl.h
147*544c191cSchristosData structures for the
148*544c191cSchristos.Xr tbl 7
149*544c191cSchristosparse tree; can be used everywhere.
150*544c191cSchristos.Pp
151*544c191cSchristosRequires
152*544c191cSchristos.In sys/types.h
153*544c191cSchristosfor
154*544c191cSchristos.Vt size_t .
155*544c191cSchristos.Pp
156*544c191cSchristosProvides
157*544c191cSchristos.Vt enum tbl_cellt ,
158*544c191cSchristos.Vt enum tbl_datt ,
159*544c191cSchristos.Vt enum tbl_spant ,
160*544c191cSchristos.Vt struct tbl_opts ,
161*544c191cSchristos.Vt struct tbl_cell ,
162*544c191cSchristos.Vt struct tbl_row ,
163*544c191cSchristos.Vt struct tbl_dat ,
164*544c191cSchristosand
165*544c191cSchristos.Vt struct tbl_span .
166*544c191cSchristos.It Qq Pa eqn.h
167*544c191cSchristosData structures for the
168*544c191cSchristos.Xr eqn 7
169*544c191cSchristosparse tree; can be used everywhere.
170*544c191cSchristos.Pp
171*544c191cSchristosRequires
172*544c191cSchristos.In sys/types.h
173*544c191cSchristosfor
174*544c191cSchristos.Vt size_t .
175*544c191cSchristos.Pp
176*544c191cSchristosProvides
177*544c191cSchristos.Vt enum eqn_boxt ,
178*544c191cSchristos.Vt enum eqn_fontt ,
179*544c191cSchristos.Vt enum eqn_post ,
180*544c191cSchristosand
181*544c191cSchristos.Vt struct eqn_box .
182*544c191cSchristos.It Qq Pa mandoc_parse.h
183*544c191cSchristosTop level parser interface, for use in the main program
184*544c191cSchristosand in the main parser, but not in formatters.
185*544c191cSchristos.Pp
186*544c191cSchristosRequires
187*544c191cSchristos.Pa mandoc.h
188*544c191cSchristosfor
189*544c191cSchristos.Vt enum mandocerr
190*544c191cSchristosand
191*544c191cSchristos.Vt enum mandoclevel
192*544c191cSchristosand
193*544c191cSchristos.Pa roff.h
194*544c191cSchristosfor
195*544c191cSchristos.Vt enum mandoc_os .
196*544c191cSchristos.Pp
197*544c191cSchristosUses the opaque type
198*544c191cSchristos.Vt struct mparse
199*544c191cSchristosfrom
200*544c191cSchristos.Pa read.c
201*544c191cSchristosfor function prototypes.
202*544c191cSchristosUses
203*544c191cSchristos.Vt struct roff_meta
204*544c191cSchristosfrom
205*544c191cSchristos.Pa roff.h
206*544c191cSchristosas an opaque type for function prototypes.
207*544c191cSchristos.It Qq Pa mandoc_xr.h
208*544c191cSchristosCross reference validation; intended for use in the main program
209*544c191cSchristosand in parsers, but not in formatters.
210*544c191cSchristos.Pp
211*544c191cSchristosProvides
212*544c191cSchristos.Vt struct mandoc_xr
213*544c191cSchristosand the functions
214*544c191cSchristos.Fn mandoc_xr_reset ,
215*544c191cSchristos.Fn mandoc_xr_add ,
216*544c191cSchristos.Fn mandoc_xr_get ,
217*544c191cSchristosand
218*544c191cSchristos.Fn mandoc_xr_free .
2199ff1f2acSchristos.El
2209ff1f2acSchristos.Pp
2219ff1f2acSchristosThe following two require
2229ff1f2acSchristos.Qq Pa roff.h
2239ff1f2acSchristosbut no other mandoc headers.
2249ff1f2acSchristosAfterwards, any other mandoc headers can be included as needed.
2259ff1f2acSchristos.Bl -tag -width Ds
226fec65c98Schristos.It Qq Pa mdoc.h
227fec65c98SchristosRequires
228fec65c98Schristos.In sys/types.h
229fec65c98Schristosfor
230fec65c98Schristos.Vt size_t .
231fec65c98Schristos.Pp
232fec65c98SchristosProvides
233fec65c98Schristos.Vt enum mdocargt ,
234fec65c98Schristos.Vt enum mdoc_auth ,
2359ff1f2acSchristos.Vt enum mdoc_disp ,
236fec65c98Schristos.Vt enum mdoc_font ,
2379ff1f2acSchristos.Vt enum mdoc_list ,
238fec65c98Schristos.Vt struct mdoc_argv ,
239fec65c98Schristos.Vt struct mdoc_arg ,
240fec65c98Schristos.Vt struct mdoc_an ,
2419ff1f2acSchristos.Vt struct mdoc_bd ,
242fec65c98Schristos.Vt struct mdoc_bf ,
2439ff1f2acSchristos.Vt struct mdoc_bl ,
244fec65c98Schristos.Vt struct mdoc_rs ,
2459ff1f2acSchristos.Vt union mdoc_data ,
246fec65c98Schristosand the functions
247fec65c98Schristos.Fn mdoc_*
248fec65c98Schristosdescribed in
249fec65c98Schristos.Xr mandoc 3 .
250fec65c98Schristos.Pp
251*544c191cSchristosUses the types
252*544c191cSchristos.Vt struct roff_node
253fec65c98Schristosfrom
2549ff1f2acSchristos.Pa roff.h
255*544c191cSchristosand
256*544c191cSchristos.Vt struct roff_man
257*544c191cSchristosfrom
258*544c191cSchristos.Pa roff_int.h
259*544c191cSchristosas opaque types for function prototypes.
260fec65c98Schristos.Pp
261fec65c98SchristosWhen this header is included, the same file should not include
262*544c191cSchristosinternals of different parsers.
263fec65c98Schristos.It Qq Pa man.h
2649ff1f2acSchristosProvides the functions
265fec65c98Schristos.Fn man_*
266fec65c98Schristosdescribed in
267fec65c98Schristos.Xr mandoc 3 .
268fec65c98Schristos.Pp
269fec65c98SchristosUses the type
2709ff1f2acSchristos.Vt struct roff_man
271fec65c98Schristosfrom
2729ff1f2acSchristos.Pa roff.h
273fec65c98Schristosas an opaque type for function prototypes.
274fec65c98Schristos.Pp
275fec65c98SchristosWhen this header is included, the same file should not include
276*544c191cSchristosinternals of different parsers.
277fec65c98Schristos.El
278fec65c98Schristos.Ss Parser internals
279*544c191cSchristosMost of the following headers require inclusion of a parser interface header
280c9bcef03Schristosbefore they can be included.
281c9bcef03SchristosAll parser interface headers should precede all parser internal headers.
282c9bcef03SchristosWhen any parser internal headers are included, the same file should
283c9bcef03Schristosnot include any formatter headers.
284fec65c98Schristos.Bl -tag -width Ds
285fec65c98Schristos.It Qq Pa libmandoc.h
286fec65c98SchristosRequires
287fec65c98Schristos.In sys/types.h
288fec65c98Schristosfor
289fec65c98Schristos.Vt size_t
290fec65c98Schristosand
291fec65c98Schristos.Qq Pa mandoc.h
292fec65c98Schristosfor
293fec65c98Schristos.Vt enum mandocerr .
294fec65c98Schristos.Pp
295fec65c98SchristosProvides
296fec65c98Schristos.Vt struct buf ,
297fec65c98Schristosutility functions needed by multiple parsers,
298fec65c98Schristosand the top-level functions to call the parsers.
299fec65c98Schristos.Pp
300*544c191cSchristosUses the opaque type
301fec65c98Schristos.Vt struct roff
302fec65c98Schristosfrom
303fec65c98Schristos.Pa roff.c
304fec65c98Schristosfor function prototypes.
305c9bcef03SchristosUses the type
3069ff1f2acSchristos.Vt struct roff_man
307fec65c98Schristosfrom
3089ff1f2acSchristos.Pa roff.h
309c9bcef03Schristosas an opaque type for function prototypes.
3109ff1f2acSchristos.It Qq Pa roff_int.h
311*544c191cSchristosParser internals shared by multiple parsers.
312*544c191cSchristosCan be used in all parsers, but not in main programs or formatters.
313*544c191cSchristos.Pp
3149ff1f2acSchristosRequires
3159ff1f2acSchristos.Qq Pa roff.h
3169ff1f2acSchristosfor
317*544c191cSchristos.Vt enum roff_type
318*544c191cSchristosand
319*544c191cSchristos.Vt enum roff_tok .
3209ff1f2acSchristos.Pp
321*544c191cSchristosProvides
322*544c191cSchristos.Vt enum roff_next ,
323*544c191cSchristos.Vt struct roff_man ,
324*544c191cSchristosfunctions named
3259ff1f2acSchristos.Fn roff_*
326*544c191cSchristosto handle roff nodes,
327*544c191cSchristos.Fn roffhash_alloc ,
328*544c191cSchristos.Fn roffhash_find ,
329*544c191cSchristos.Fn roffhash_free ,
330*544c191cSchristosand
331*544c191cSchristos.Fn roff_validate ,
332*544c191cSchristosand the two special functions
3339ff1f2acSchristos.Fn man_breakscope
3349ff1f2acSchristosand
3359ff1f2acSchristos.Fn mdoc_argv_free
3369ff1f2acSchristosbecause the latter two are needed by
3379ff1f2acSchristos.Qq Pa roff.c .
3389ff1f2acSchristos.Pp
3399ff1f2acSchristosUses the types
340*544c191cSchristos.Vt struct ohash
3419ff1f2acSchristosfrom
342*544c191cSchristos.Pa mandoc_ohash.h ,
343*544c191cSchristos.Vt struct roff_node
344*544c191cSchristosand
345*544c191cSchristos.Vt struct roff_meta
346*544c191cSchristosfrom
347*544c191cSchristos.Pa roff.h ,
348*544c191cSchristos.Vt struct roff
349*544c191cSchristosfrom
350*544c191cSchristos.Pa roff.c ,
3519ff1f2acSchristosand
3529ff1f2acSchristos.Vt struct mdoc_arg
3539ff1f2acSchristosfrom
3549ff1f2acSchristos.Pa mdoc.h
355fec65c98Schristosas opaque types for function prototypes.
356fec65c98Schristos.It Qq Pa libmdoc.h
357fec65c98SchristosRequires
358c9bcef03Schristos.Qq Pa roff.h
359c9bcef03Schristosfor
360c9bcef03Schristos.Vt enum roff_tok
361c9bcef03Schristosand
362*544c191cSchristos.Vt enum roff_sec .
363fec65c98Schristos.Pp
364fec65c98SchristosProvides
365fec65c98Schristos.Vt enum margserr ,
366fec65c98Schristos.Vt enum mdelim ,
367fec65c98Schristos.Vt struct mdoc_macro ,
368fec65c98Schristosand many functions internal to the
369fec65c98Schristos.Xr mdoc 7
370fec65c98Schristosparser.
371fec65c98Schristos.Pp
3729ff1f2acSchristosUses the types
3739ff1f2acSchristos.Vt struct roff_node
374fec65c98Schristosfrom
375*544c191cSchristos.Pa roff.h ,
376*544c191cSchristos.Vt struct roff_man
377*544c191cSchristosfrom
378*544c191cSchristos.Pa roff_int.h ,
379*544c191cSchristosand
380*544c191cSchristos.Vt struct mdoc_arg
381*544c191cSchristosfrom
382*544c191cSchristos.Pa mdoc.h
3839ff1f2acSchristosas opaque types for function prototypes.
384fec65c98Schristos.Pp
385fec65c98SchristosWhen this header is included, the same file should not include
386*544c191cSchristosinterfaces of different parsers.
387fec65c98Schristos.It Qq Pa libman.h
388c9bcef03SchristosRequires
389c9bcef03Schristos.Qq Pa roff.h
390c9bcef03Schristosfor
391c9bcef03Schristos.Vt enum roff_tok .
392c9bcef03Schristos.Pp
393fec65c98SchristosProvides
3949ff1f2acSchristos.Vt struct man_macro
3959ff1f2acSchristosand some functions internal to the
396fec65c98Schristos.Xr man 7
397fec65c98Schristosparser.
398fec65c98Schristos.Pp
3999ff1f2acSchristosUses the types
4009ff1f2acSchristos.Vt struct roff_node
401fec65c98Schristosfrom
4029ff1f2acSchristos.Pa roff.h
403*544c191cSchristosand
404*544c191cSchristos.Vt struct roff_man
405*544c191cSchristosfrom
406*544c191cSchristos.Pa roff_int.h
4079ff1f2acSchristosas opaque types for function prototypes.
408fec65c98Schristos.Pp
409fec65c98SchristosWhen this header is included, the same file should not include
410*544c191cSchristosinterfaces of different parsers.
411*544c191cSchristos.It Qq Pa eqn_parse.h
412*544c191cSchristosExternal interface of the
413*544c191cSchristos.Xr eqn 7
414*544c191cSchristosparser, for use in the
415*544c191cSchristos.Xr roff 7
416*544c191cSchristosand
417*544c191cSchristos.Xr eqn 7
418*544c191cSchristosparsers only.
419*544c191cSchristos.Pp
420fec65c98SchristosRequires
421fec65c98Schristos.In sys/types.h
422fec65c98Schristosfor
423*544c191cSchristos.Vt size_t .
424*544c191cSchristos.Pp
425*544c191cSchristosProvides
426*544c191cSchristos.Vt struct eqn_node
427*544c191cSchristosand the functions
428*544c191cSchristos.Fn eqn_alloc ,
429*544c191cSchristos.Fn eqn_box_new ,
430*544c191cSchristos.Fn eqn_box_free ,
431*544c191cSchristos.Fn eqn_free ,
432*544c191cSchristos.Fn eqn_parse ,
433*544c191cSchristos.Fn eqn_read ,
434c9bcef03Schristosand
435*544c191cSchristos.Fn eqn_reset .
436*544c191cSchristos.Pp
437*544c191cSchristosUses the type
438*544c191cSchristos.Vt struct eqn_box
439*544c191cSchristosfrom
440*544c191cSchristos.Pa mandoc.h
441*544c191cSchristosas an opaque type for function prototypes.
442*544c191cSchristosUses the types
443*544c191cSchristos.Vt struct roff_node
444*544c191cSchristosfrom
445*544c191cSchristos.Pa roff.h
446*544c191cSchristosand
447*544c191cSchristos.Vt struct eqn_def
448*544c191cSchristosfrom
449*544c191cSchristos.Pa eqn.c
450*544c191cSchristosas opaque struct members.
451*544c191cSchristos.Pp
452*544c191cSchristosWhen this header is included, the same file should not include
453*544c191cSchristosinternals of different parsers.
454*544c191cSchristos.It Qq Pa tbl_parse.h
455*544c191cSchristosExternal interface of the
456*544c191cSchristos.Xr tbl 7
457*544c191cSchristosparser, for use in the
458*544c191cSchristos.Xr roff 7
459*544c191cSchristosand
460*544c191cSchristos.Xr tbl 7
461*544c191cSchristosparsers only.
462*544c191cSchristos.Pp
463*544c191cSchristosProvides the functions documented in
464*544c191cSchristos.Xr tbl 3 .
465*544c191cSchristos.Pp
466*544c191cSchristosUses the types
467*544c191cSchristos.Vt struct tbl_span
468*544c191cSchristosfrom
469*544c191cSchristos.Pa tbl.h
470*544c191cSchristosand
471*544c191cSchristos.Vt struct tbl_node
472*544c191cSchristosfrom
473*544c191cSchristos.Pa tbl_int.h
474*544c191cSchristosas opaque types for function prototypes.
475*544c191cSchristos.Pp
476*544c191cSchristosWhen this header is included, the same file should not include
477*544c191cSchristosinternals of different parsers.
478*544c191cSchristos.It Qq Pa tbl_int.h
479*544c191cSchristosInternal interfaces of the
480*544c191cSchristos.Xr tbl 7
481*544c191cSchristosparser, for use inside the
482*544c191cSchristos.Xr tbl 7
483*544c191cSchristosparser only.
484*544c191cSchristos.Pp
485*544c191cSchristosRequires
486*544c191cSchristos.Qq Pa tbl.h
487fec65c98Schristosfor
488*544c191cSchristos.Vt struct tbl_opts .
489fec65c98Schristos.Pp
490fec65c98SchristosProvides
491fec65c98Schristos.Vt enum tbl_part ,
492fec65c98Schristos.Vt struct tbl_node ,
493*544c191cSchristosand the functions
494*544c191cSchristos.Fn tbl_option ,
495*544c191cSchristos.Fn tbl_layout ,
496*544c191cSchristos.Fn tbl_data ,
497*544c191cSchristos.Fn tbl_cdata ,
498fec65c98Schristosand
499*544c191cSchristos.Fn tbl_reset .
500fec65c98Schristos.Pp
501fec65c98SchristosWhen this header is included, the same file should not include
502*544c191cSchristosinterfaces of different parsers.
503fec65c98Schristos.El
504fec65c98Schristos.Ss Formatter interface
505fec65c98SchristosThese headers should be included after any parser interface headers.
506fec65c98SchristosNo parser internal headers should be included by the same file.
507fec65c98Schristos.Bl -tag -width Ds
508fec65c98Schristos.It Qq Pa out.h
509fec65c98SchristosRequires
510fec65c98Schristos.In sys/types.h
511fec65c98Schristosfor
512fec65c98Schristos.Vt size_t .
513fec65c98Schristos.Pp
514fec65c98SchristosProvides
515fec65c98Schristos.Vt enum roffscale ,
516fec65c98Schristos.Vt struct roffcol ,
517fec65c98Schristos.Vt struct roffsu ,
518fec65c98Schristos.Vt struct rofftbl ,
519fec65c98Schristos.Fn a2roffsu ,
520fec65c98Schristosand
521fec65c98Schristos.Fn tblcalc .
522fec65c98Schristos.Pp
523fec65c98SchristosUses
524fec65c98Schristos.Vt struct tbl_span
525fec65c98Schristosfrom
526fec65c98Schristos.Pa mandoc.h
527fec65c98Schristosas an opaque type for function prototypes.
528fec65c98Schristos.Pp
529fec65c98SchristosWhen this header is included, the same file should not include
530fec65c98Schristos.Pa mansearch.h .
531fec65c98Schristos.It Qq Pa term.h
532fec65c98SchristosRequires
533fec65c98Schristos.In sys/types.h
534fec65c98Schristosfor
535fec65c98Schristos.Vt size_t
536fec65c98Schristosand
537fec65c98Schristos.Qq Pa out.h
538fec65c98Schristosfor
539fec65c98Schristos.Vt struct roffsu
540fec65c98Schristosand
541fec65c98Schristos.Vt struct rofftbl .
542fec65c98Schristos.Pp
543fec65c98SchristosProvides
544fec65c98Schristos.Vt enum termenc ,
545fec65c98Schristos.Vt enum termfont ,
546fec65c98Schristos.Vt enum termtype ,
547fec65c98Schristos.Vt struct termp_tbl ,
548fec65c98Schristos.Vt struct termp ,
549c9bcef03Schristos.Fn roff_term_pre ,
550fec65c98Schristosand many terminal formatting functions.
551fec65c98Schristos.Pp
5529ff1f2acSchristosUses the opaque type
553fec65c98Schristos.Vt struct termp_ps
554fec65c98Schristosfrom
555fec65c98Schristos.Pa term_ps.c .
556fec65c98SchristosUses
557fec65c98Schristos.Vt struct tbl_span
558fec65c98Schristosand
559c9bcef03Schristos.Vt struct eqn_box
560fec65c98Schristosfrom
561fec65c98Schristos.Pa mandoc.h
5629ff1f2acSchristosand
5639ff1f2acSchristos.Vt struct roff_meta
564c9bcef03Schristosand
565c9bcef03Schristos.Vt struct roff_node
5669ff1f2acSchristosfrom
5679ff1f2acSchristos.Pa roff.h
568fec65c98Schristosas opaque types for function prototypes.
569fec65c98Schristos.Pp
570fec65c98SchristosWhen this header is included, the same file should not include
5719ff1f2acSchristos.Pa html.h
572fec65c98Schristosor
573fec65c98Schristos.Pa mansearch.h .
574fec65c98Schristos.It Qq Pa html.h
575fec65c98SchristosRequires
576fec65c98Schristos.In sys/types.h
577fec65c98Schristosfor
578*544c191cSchristos.Vt size_t ,
579*544c191cSchristos.Pa mandoc.h
580*544c191cSchristosfor
581*544c191cSchristos.Vt enum mandoc_esc ,
582fec65c98Schristosand
583fec65c98Schristos.Qq Pa out.h
584fec65c98Schristosfor
585fec65c98Schristos.Vt struct roffsu
586fec65c98Schristosand
587fec65c98Schristos.Vt struct rofftbl .
588fec65c98Schristos.Pp
589fec65c98SchristosProvides
590fec65c98Schristos.Vt enum htmltag ,
591fec65c98Schristos.Vt enum htmlattr ,
592fec65c98Schristos.Vt enum htmlfont ,
593fec65c98Schristos.Vt struct tag ,
594fec65c98Schristos.Vt struct tagq ,
595fec65c98Schristos.Vt struct htmlpair ,
596fec65c98Schristos.Vt struct html ,
597c9bcef03Schristos.Fn roff_html_pre ,
598fec65c98Schristosand many HTML formatting functions.
599fec65c98Schristos.Pp
600c9bcef03SchristosUses
601c9bcef03Schristos.Vt struct tbl_span
602c9bcef03Schristosand
603c9bcef03Schristos.Vt struct eqn_box
604c9bcef03Schristosfrom
605c9bcef03Schristos.Pa mandoc.h
606c9bcef03Schristosand
607c9bcef03Schristos.Vt struct roff_node
608c9bcef03Schristosfrom
609c9bcef03Schristos.Pa roff.h
610c9bcef03Schristosas opaque types for function prototypes.
611c9bcef03Schristos.Pp
612fec65c98SchristosWhen this header is included, the same file should not include
6139ff1f2acSchristos.Pa term.h
614fec65c98Schristosor
615fec65c98Schristos.Pa mansearch.h .
6169ff1f2acSchristos.It Qq Pa tag.h
6179ff1f2acSchristosRequires
6189ff1f2acSchristos.In sys/types.h
6199ff1f2acSchristosfor
6209ff1f2acSchristos.Vt size_t .
6219ff1f2acSchristos.Pp
6229ff1f2acSchristosProvides an interface to generate
6239ff1f2acSchristos.Xr ctags 1
6249ff1f2acSchristosfiles for the
6259ff1f2acSchristos.Ic :t
6269ff1f2acSchristosfunctionality mentioned in
6279ff1f2acSchristos.Xr man 1 .
628fec65c98Schristos.It Qq Pa main.h
629fec65c98SchristosProvides the top level steering functions for all formatters.
630fec65c98Schristos.Pp
6319ff1f2acSchristosUses the type
632*544c191cSchristos.Vt struct roff_meta
633fec65c98Schristosfrom
6349ff1f2acSchristos.Pa roff.h
6359ff1f2acSchristosas an opaque type for function prototypes.
6369ff1f2acSchristos.It Qq Pa manconf.h
637fec65c98SchristosRequires
638fec65c98Schristos.In sys/types.h
639fec65c98Schristosfor
640fec65c98Schristos.Vt size_t .
641fec65c98Schristos.Pp
642fec65c98SchristosProvides
6439ff1f2acSchristos.Vt struct manconf ,
6449ff1f2acSchristos.Vt struct manpaths ,
6459ff1f2acSchristos.Vt struct manoutput ,
646fec65c98Schristosand the functions
6479ff1f2acSchristos.Fn manconf_parse ,
6489ff1f2acSchristos.Fn manconf_output ,
649c9bcef03Schristos.Fn manconf_free ,
650fec65c98Schristosand
651c9bcef03Schristos.Fn manpath_base .
652fec65c98Schristos.It Qq Pa mansearch.h
653fec65c98SchristosRequires
654fec65c98Schristos.In sys/types.h
655fec65c98Schristosfor
656fec65c98Schristos.Vt size_t
657fec65c98Schristosand
658fec65c98Schristos.In stdint.h
659fec65c98Schristosfor
660fec65c98Schristos.Vt uint64_t .
661fec65c98Schristos.Pp
662fec65c98SchristosProvides
663fec65c98Schristos.Vt enum argmode ,
664fec65c98Schristos.Vt struct manpage ,
665fec65c98Schristos.Vt struct mansearch ,
666fec65c98Schristosand the functions
667c9bcef03Schristos.Fn mansearch
668fec65c98Schristosand
669fec65c98Schristos.Fn mansearch_free .
670fec65c98Schristos.Pp
671fec65c98SchristosUses
672fec65c98Schristos.Vt struct manpaths
673fec65c98Schristosfrom
6749ff1f2acSchristos.Pa manconf.h
675fec65c98Schristosas an opaque type for function prototypes.
676fec65c98Schristos.Pp
677fec65c98SchristosWhen this header is included, the same file should not include
678fec65c98Schristos.Pa out.h ,
679fec65c98Schristos.Pa term.h ,
680fec65c98Schristosor
681fec65c98Schristos.Pa html.h .
682fec65c98Schristos.El
683