xref: /freebsd/contrib/mandoc/mandoc_headers.3 (revision 6d38604fc532a3fc060788e3ce40464b46047eaf)
1*6d38604fSBaptiste Daroussin.\"	$Id: mandoc_headers.3,v 1.34 2021/08/10 12:55:03 schwarze Exp $
245a5aec3SBaptiste Daroussin.\"
3*6d38604fSBaptiste Daroussin.\" Copyright (c) 2014-2021 Ingo Schwarze <schwarze@openbsd.org>
445a5aec3SBaptiste Daroussin.\"
545a5aec3SBaptiste Daroussin.\" Permission to use, copy, modify, and distribute this software for any
645a5aec3SBaptiste Daroussin.\" purpose with or without fee is hereby granted, provided that the above
745a5aec3SBaptiste Daroussin.\" copyright notice and this permission notice appear in all copies.
845a5aec3SBaptiste Daroussin.\"
945a5aec3SBaptiste Daroussin.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1045a5aec3SBaptiste Daroussin.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1145a5aec3SBaptiste Daroussin.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1245a5aec3SBaptiste Daroussin.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1345a5aec3SBaptiste Daroussin.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1445a5aec3SBaptiste Daroussin.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1545a5aec3SBaptiste Daroussin.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1645a5aec3SBaptiste Daroussin.\"
17*6d38604fSBaptiste Daroussin.Dd $Mdocdate: August 10 2021 $
1861d06d6bSBaptiste Daroussin.Dt MANDOC_HEADERS 3
1961d06d6bSBaptiste Daroussin.Os
2061d06d6bSBaptiste Daroussin.Sh NAME
2161d06d6bSBaptiste Daroussin.Nm mandoc_headers
2261d06d6bSBaptiste Daroussin.Nd ordering of mandoc include files
2361d06d6bSBaptiste Daroussin.Sh DESCRIPTION
2461d06d6bSBaptiste DaroussinTo support a cleaner coding style, the mandoc header files do not
2561d06d6bSBaptiste Daroussincontain any include directives and do not guard against multiple
2661d06d6bSBaptiste Daroussininclusion.
2761d06d6bSBaptiste DaroussinThe application developer has to make sure that the headers are
2861d06d6bSBaptiste Daroussinincluded in a proper order, and that no header is included more
2961d06d6bSBaptiste Daroussinthan once.
3061d06d6bSBaptiste Daroussin.Pp
3161d06d6bSBaptiste DaroussinThe headers and functions form three major groups:
3261d06d6bSBaptiste Daroussin.Sx Parser interface ,
3361d06d6bSBaptiste Daroussin.Sx Parser internals ,
3461d06d6bSBaptiste Daroussinand
3561d06d6bSBaptiste Daroussin.Sx Formatter interface .
3661d06d6bSBaptiste Daroussin.Pp
3761d06d6bSBaptiste DaroussinVarious rules are given below prohibiting the inclusion of certain
3861d06d6bSBaptiste Daroussincombinations of headers into the same file.
3961d06d6bSBaptiste DaroussinThe intention is to keep the following functional components
4061d06d6bSBaptiste Daroussinseparate from each other:
4161d06d6bSBaptiste Daroussin.Pp
4261d06d6bSBaptiste Daroussin.Bl -dash -offset indent -compact
4361d06d6bSBaptiste Daroussin.It
447295610fSBaptiste Daroussin.Xr roff 7
457295610fSBaptiste Daroussinparser
467295610fSBaptiste Daroussin.It
4761d06d6bSBaptiste Daroussin.Xr mdoc 7
4861d06d6bSBaptiste Daroussinparser
4961d06d6bSBaptiste Daroussin.It
5061d06d6bSBaptiste Daroussin.Xr man 7
5161d06d6bSBaptiste Daroussinparser
5261d06d6bSBaptiste Daroussin.It
5361d06d6bSBaptiste Daroussin.Xr tbl 7
5461d06d6bSBaptiste Daroussinparser
5561d06d6bSBaptiste Daroussin.It
5661d06d6bSBaptiste Daroussin.Xr eqn 7
5761d06d6bSBaptiste Daroussinparser
5861d06d6bSBaptiste Daroussin.It
5961d06d6bSBaptiste Daroussinterminal formatters
6061d06d6bSBaptiste Daroussin.It
6161d06d6bSBaptiste DaroussinHTML formatters
6261d06d6bSBaptiste Daroussin.It
6361d06d6bSBaptiste Daroussinsearch tools
647295610fSBaptiste Daroussin.It
657295610fSBaptiste Daroussinmain programs
6661d06d6bSBaptiste Daroussin.El
6761d06d6bSBaptiste Daroussin.Pp
6861d06d6bSBaptiste DaroussinNote that mere usage of an opaque struct type does
6961d06d6bSBaptiste Daroussin.Em not
7061d06d6bSBaptiste Daroussinrequire inclusion of the header where that type is defined.
7161d06d6bSBaptiste Daroussin.Ss Parser interface
7261d06d6bSBaptiste DaroussinEach of the following headers can be included without including
7361d06d6bSBaptiste Daroussinany other mandoc header.
7461d06d6bSBaptiste DaroussinThese headers should be included before any other mandoc headers.
7561d06d6bSBaptiste Daroussin.Bl -tag -width Ds
7661d06d6bSBaptiste Daroussin.It Qq Pa mandoc_aux.h
777295610fSBaptiste DaroussinMemory allocation utility functions; can be used everywhere.
787295610fSBaptiste Daroussin.Pp
7961d06d6bSBaptiste DaroussinRequires
8061d06d6bSBaptiste Daroussin.In sys/types.h
8161d06d6bSBaptiste Daroussinfor
8261d06d6bSBaptiste Daroussin.Vt size_t .
8361d06d6bSBaptiste Daroussin.Pp
847295610fSBaptiste DaroussinProvides the functions documented in
8561d06d6bSBaptiste Daroussin.Xr mandoc_malloc 3 .
8661d06d6bSBaptiste Daroussin.It Qq Pa mandoc_ohash.h
877295610fSBaptiste DaroussinHashing utility functions; can be used everywhere.
887295610fSBaptiste Daroussin.Pp
8961d06d6bSBaptiste DaroussinRequires
9061d06d6bSBaptiste Daroussin.In stddef.h
9161d06d6bSBaptiste Daroussinfor
9261d06d6bSBaptiste Daroussin.Vt ptrdiff_t
9361d06d6bSBaptiste Daroussinand
9461d06d6bSBaptiste Daroussin.In stdint.h
9561d06d6bSBaptiste Daroussinfor
9661d06d6bSBaptiste Daroussin.Vt uint32_t .
9761d06d6bSBaptiste Daroussin.Pp
9861d06d6bSBaptiste DaroussinIncludes
9961d06d6bSBaptiste Daroussin.In ohash.h
10061d06d6bSBaptiste Daroussinand provides
10161d06d6bSBaptiste Daroussin.Fn mandoc_ohash_init .
10261d06d6bSBaptiste Daroussin.It Qq Pa mandoc.h
1037295610fSBaptiste DaroussinError handling, escape sequence, and character utilities;
1047295610fSBaptiste Daroussincan be used everywhere.
1057295610fSBaptiste Daroussin.Pp
10661d06d6bSBaptiste DaroussinRequires
10761d06d6bSBaptiste Daroussin.In sys/types.h
10861d06d6bSBaptiste Daroussinfor
1097295610fSBaptiste Daroussin.Vt size_t
1107295610fSBaptiste Daroussinand
1117295610fSBaptiste Daroussin.In stdio.h
1127295610fSBaptiste Daroussinfor
1137295610fSBaptiste Daroussin.Vt FILE .
11461d06d6bSBaptiste Daroussin.Pp
11561d06d6bSBaptiste DaroussinProvides
11661d06d6bSBaptiste Daroussin.Vt enum mandoc_esc ,
11761d06d6bSBaptiste Daroussin.Vt enum mandocerr ,
11861d06d6bSBaptiste Daroussin.Vt enum mandoclevel ,
11961d06d6bSBaptiste Daroussinthe function
12061d06d6bSBaptiste Daroussin.Xr mandoc_escape 3 ,
12161d06d6bSBaptiste Daroussinthe functions described in
12261d06d6bSBaptiste Daroussin.Xr mchars_alloc 3 ,
1237295610fSBaptiste Daroussinand the
1247295610fSBaptiste Daroussin.Fn mandoc_msg*
1257295610fSBaptiste Daroussinfunctions.
12661d06d6bSBaptiste Daroussin.It Qq Pa roff.h
1277295610fSBaptiste DaroussinCommon data types for all syntax trees and related functions;
1287295610fSBaptiste Daroussincan be used everywhere.
12961d06d6bSBaptiste Daroussin.Pp
13061d06d6bSBaptiste DaroussinProvides
1317295610fSBaptiste Daroussin.Vt enum mandoc_os ,
13261d06d6bSBaptiste Daroussin.Vt enum mdoc_endbody ,
13361d06d6bSBaptiste Daroussin.Vt enum roff_macroset ,
13461d06d6bSBaptiste Daroussin.Vt enum roff_sec ,
13561d06d6bSBaptiste Daroussin.Vt enum roff_tok ,
13661d06d6bSBaptiste Daroussin.Vt enum roff_type ,
13761d06d6bSBaptiste Daroussin.Vt struct roff_man ,
13861d06d6bSBaptiste Daroussin.Vt struct roff_meta ,
13961d06d6bSBaptiste Daroussin.Vt struct roff_node ,
14061d06d6bSBaptiste Daroussinthe constant array
14161d06d6bSBaptiste Daroussin.Va roff_name
1427295610fSBaptiste Daroussinand the function
1437295610fSBaptiste Daroussin.Fn deroff .
14461d06d6bSBaptiste Daroussin.Pp
14561d06d6bSBaptiste DaroussinUses pointers to the types
1467295610fSBaptiste Daroussin.Vt struct ohash
1477295610fSBaptiste Daroussinfrom
14845a5aec3SBaptiste Daroussin.Qq Pa mandoc_ohash.h ,
14961d06d6bSBaptiste Daroussin.Vt struct mdoc_arg
15061d06d6bSBaptiste Daroussinand
15161d06d6bSBaptiste Daroussin.Vt union mdoc_data
15261d06d6bSBaptiste Daroussinfrom
15345a5aec3SBaptiste Daroussin.Qq Pa mdoc.h ,
1547295610fSBaptiste Daroussin.Vt struct tbl_span
1557295610fSBaptiste Daroussinfrom
15645a5aec3SBaptiste Daroussin.Qq Pa tbl.h ,
1577295610fSBaptiste Daroussinand
1587295610fSBaptiste Daroussin.Vt struct eqn_box
1597295610fSBaptiste Daroussinfrom
16045a5aec3SBaptiste Daroussin.Qq Pa eqn.h
16161d06d6bSBaptiste Daroussinas opaque struct members.
1627295610fSBaptiste Daroussin.It Qq Pa tbl.h
1637295610fSBaptiste DaroussinData structures for the
1647295610fSBaptiste Daroussin.Xr tbl 7
1657295610fSBaptiste Daroussinparse tree; can be used everywhere.
1667295610fSBaptiste Daroussin.Pp
1677295610fSBaptiste DaroussinRequires
1687295610fSBaptiste Daroussin.In sys/types.h
1697295610fSBaptiste Daroussinfor
170*6d38604fSBaptiste Daroussin.Vt size_t
171*6d38604fSBaptiste Daroussinand
172*6d38604fSBaptiste Daroussin.Qq Pa mandoc.h
173*6d38604fSBaptiste Daroussinfor
174*6d38604fSBaptiste Daroussin.Vt enum mandoc_esc .
1757295610fSBaptiste Daroussin.Pp
1767295610fSBaptiste DaroussinProvides
1777295610fSBaptiste Daroussin.Vt enum tbl_cellt ,
1787295610fSBaptiste Daroussin.Vt enum tbl_datt ,
1797295610fSBaptiste Daroussin.Vt enum tbl_spant ,
1807295610fSBaptiste Daroussin.Vt struct tbl_opts ,
1817295610fSBaptiste Daroussin.Vt struct tbl_cell ,
1827295610fSBaptiste Daroussin.Vt struct tbl_row ,
1837295610fSBaptiste Daroussin.Vt struct tbl_dat ,
1847295610fSBaptiste Daroussinand
1857295610fSBaptiste Daroussin.Vt struct tbl_span .
1867295610fSBaptiste Daroussin.It Qq Pa eqn.h
1877295610fSBaptiste DaroussinData structures for the
1887295610fSBaptiste Daroussin.Xr eqn 7
1897295610fSBaptiste Daroussinparse tree; can be used everywhere.
1907295610fSBaptiste Daroussin.Pp
1917295610fSBaptiste DaroussinRequires
1927295610fSBaptiste Daroussin.In sys/types.h
1937295610fSBaptiste Daroussinfor
1947295610fSBaptiste Daroussin.Vt size_t .
1957295610fSBaptiste Daroussin.Pp
1967295610fSBaptiste DaroussinProvides
1977295610fSBaptiste Daroussin.Vt enum eqn_boxt ,
1987295610fSBaptiste Daroussin.Vt enum eqn_fontt ,
1997295610fSBaptiste Daroussin.Vt enum eqn_post ,
2007295610fSBaptiste Daroussinand
2017295610fSBaptiste Daroussin.Vt struct eqn_box .
2027295610fSBaptiste Daroussin.It Qq Pa mandoc_parse.h
2037295610fSBaptiste DaroussinTop level parser interface, for use in the main program
2047295610fSBaptiste Daroussinand in the main parser, but not in formatters.
2057295610fSBaptiste Daroussin.Pp
2067295610fSBaptiste DaroussinRequires
20745a5aec3SBaptiste Daroussin.Qq Pa mandoc.h
2087295610fSBaptiste Daroussinfor
2097295610fSBaptiste Daroussin.Vt enum mandocerr
2107295610fSBaptiste Daroussinand
2117295610fSBaptiste Daroussin.Vt enum mandoclevel
2127295610fSBaptiste Daroussinand
21345a5aec3SBaptiste Daroussin.Qq Pa roff.h
2147295610fSBaptiste Daroussinfor
2157295610fSBaptiste Daroussin.Vt enum mandoc_os .
2167295610fSBaptiste Daroussin.Pp
2177295610fSBaptiste DaroussinUses the opaque type
2187295610fSBaptiste Daroussin.Vt struct mparse
2197295610fSBaptiste Daroussinfrom
2207295610fSBaptiste Daroussin.Pa read.c
2217295610fSBaptiste Daroussinfor function prototypes.
2227295610fSBaptiste DaroussinUses
2237295610fSBaptiste Daroussin.Vt struct roff_meta
2247295610fSBaptiste Daroussinfrom
22545a5aec3SBaptiste Daroussin.Qq Pa roff.h
2267295610fSBaptiste Daroussinas an opaque type for function prototypes.
2277295610fSBaptiste Daroussin.It Qq Pa mandoc_xr.h
2287295610fSBaptiste DaroussinCross reference validation; intended for use in the main program
2297295610fSBaptiste Daroussinand in parsers, but not in formatters.
2307295610fSBaptiste Daroussin.Pp
2317295610fSBaptiste DaroussinProvides
2327295610fSBaptiste Daroussin.Vt struct mandoc_xr
2337295610fSBaptiste Daroussinand the functions
2347295610fSBaptiste Daroussin.Fn mandoc_xr_reset ,
2357295610fSBaptiste Daroussin.Fn mandoc_xr_add ,
2367295610fSBaptiste Daroussin.Fn mandoc_xr_get ,
2377295610fSBaptiste Daroussinand
2387295610fSBaptiste Daroussin.Fn mandoc_xr_free .
239*6d38604fSBaptiste Daroussin.It Qq Pa tag.h
240*6d38604fSBaptiste DaroussinInternal interfaces to tag syntax tree nodes,
241*6d38604fSBaptiste Daroussinfor use by validation modules only.
242*6d38604fSBaptiste Daroussin.Pp
243*6d38604fSBaptiste DaroussinRequires
244*6d38604fSBaptiste Daroussin.In limits.h
245*6d38604fSBaptiste Daroussinfor
246*6d38604fSBaptiste Daroussin.Dv INT_MAX .
247*6d38604fSBaptiste Daroussin.Pp
248*6d38604fSBaptiste DaroussinProvides the functions
249*6d38604fSBaptiste Daroussin.Fn tag_alloc ,
250*6d38604fSBaptiste Daroussin.Fn tag_put ,
251*6d38604fSBaptiste Daroussin.Fn tag_check ,
252*6d38604fSBaptiste Daroussinand
253*6d38604fSBaptiste Daroussin.Fn tag_free
254*6d38604fSBaptiste Daroussinand some
255*6d38604fSBaptiste Daroussin.Dv TAG_*
256*6d38604fSBaptiste Daroussinconstants.
257*6d38604fSBaptiste Daroussin.Pp
258*6d38604fSBaptiste DaroussinUses the type
259*6d38604fSBaptiste Daroussin.Vt struct roff_node
260*6d38604fSBaptiste Daroussinfrom
261*6d38604fSBaptiste Daroussin.Qq Pa roff.h
262*6d38604fSBaptiste Daroussinas an opaque type for function prototypes.
26361d06d6bSBaptiste Daroussin.El
26461d06d6bSBaptiste Daroussin.Pp
26561d06d6bSBaptiste DaroussinThe following two require
26661d06d6bSBaptiste Daroussin.Qq Pa roff.h
26761d06d6bSBaptiste Daroussinbut no other mandoc headers.
26861d06d6bSBaptiste DaroussinAfterwards, any other mandoc headers can be included as needed.
26961d06d6bSBaptiste Daroussin.Bl -tag -width Ds
27061d06d6bSBaptiste Daroussin.It Qq Pa mdoc.h
27161d06d6bSBaptiste DaroussinRequires
27261d06d6bSBaptiste Daroussin.In sys/types.h
27361d06d6bSBaptiste Daroussinfor
27461d06d6bSBaptiste Daroussin.Vt size_t .
27561d06d6bSBaptiste Daroussin.Pp
27661d06d6bSBaptiste DaroussinProvides
27761d06d6bSBaptiste Daroussin.Vt enum mdocargt ,
27861d06d6bSBaptiste Daroussin.Vt enum mdoc_auth ,
27961d06d6bSBaptiste Daroussin.Vt enum mdoc_disp ,
28061d06d6bSBaptiste Daroussin.Vt enum mdoc_font ,
28161d06d6bSBaptiste Daroussin.Vt enum mdoc_list ,
28261d06d6bSBaptiste Daroussin.Vt struct mdoc_argv ,
28361d06d6bSBaptiste Daroussin.Vt struct mdoc_arg ,
28461d06d6bSBaptiste Daroussin.Vt struct mdoc_an ,
28561d06d6bSBaptiste Daroussin.Vt struct mdoc_bd ,
28661d06d6bSBaptiste Daroussin.Vt struct mdoc_bf ,
28761d06d6bSBaptiste Daroussin.Vt struct mdoc_bl ,
28861d06d6bSBaptiste Daroussin.Vt struct mdoc_rs ,
28961d06d6bSBaptiste Daroussin.Vt union mdoc_data ,
29061d06d6bSBaptiste Daroussinand the functions
29161d06d6bSBaptiste Daroussin.Fn mdoc_*
29261d06d6bSBaptiste Daroussindescribed in
29361d06d6bSBaptiste Daroussin.Xr mandoc 3 .
29461d06d6bSBaptiste Daroussin.Pp
2957295610fSBaptiste DaroussinUses the types
2967295610fSBaptiste Daroussin.Vt struct roff_node
29761d06d6bSBaptiste Daroussinfrom
29845a5aec3SBaptiste Daroussin.Qq Pa roff.h
2997295610fSBaptiste Daroussinand
3007295610fSBaptiste Daroussin.Vt struct roff_man
3017295610fSBaptiste Daroussinfrom
30245a5aec3SBaptiste Daroussin.Qq Pa roff_int.h
3037295610fSBaptiste Daroussinas opaque types for function prototypes.
30461d06d6bSBaptiste Daroussin.Pp
30561d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include
3067295610fSBaptiste Daroussininternals of different parsers.
30761d06d6bSBaptiste Daroussin.It Qq Pa man.h
30861d06d6bSBaptiste DaroussinProvides the functions
30961d06d6bSBaptiste Daroussin.Fn man_*
31061d06d6bSBaptiste Daroussindescribed in
31161d06d6bSBaptiste Daroussin.Xr mandoc 3 .
31261d06d6bSBaptiste Daroussin.Pp
31361d06d6bSBaptiste DaroussinUses the type
31461d06d6bSBaptiste Daroussin.Vt struct roff_man
31561d06d6bSBaptiste Daroussinfrom
31645a5aec3SBaptiste Daroussin.Qq Pa roff.h
31761d06d6bSBaptiste Daroussinas an opaque type for function prototypes.
31861d06d6bSBaptiste Daroussin.Pp
31961d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include
3207295610fSBaptiste Daroussininternals of different parsers.
32161d06d6bSBaptiste Daroussin.El
32261d06d6bSBaptiste Daroussin.Ss Parser internals
3237295610fSBaptiste DaroussinMost of the following headers require inclusion of a parser interface header
32461d06d6bSBaptiste Daroussinbefore they can be included.
32561d06d6bSBaptiste DaroussinAll parser interface headers should precede all parser internal headers.
32661d06d6bSBaptiste DaroussinWhen any parser internal headers are included, the same file should
32761d06d6bSBaptiste Daroussinnot include any formatter headers.
32861d06d6bSBaptiste Daroussin.Bl -tag -width Ds
32961d06d6bSBaptiste Daroussin.It Qq Pa libmandoc.h
33061d06d6bSBaptiste DaroussinRequires
33161d06d6bSBaptiste Daroussin.In sys/types.h
33261d06d6bSBaptiste Daroussinfor
33361d06d6bSBaptiste Daroussin.Vt size_t
33461d06d6bSBaptiste Daroussinand
33561d06d6bSBaptiste Daroussin.Qq Pa mandoc.h
33661d06d6bSBaptiste Daroussinfor
33761d06d6bSBaptiste Daroussin.Vt enum mandocerr .
33861d06d6bSBaptiste Daroussin.Pp
33961d06d6bSBaptiste DaroussinProvides
34061d06d6bSBaptiste Daroussin.Vt struct buf ,
34161d06d6bSBaptiste Daroussinutility functions needed by multiple parsers,
34261d06d6bSBaptiste Daroussinand the top-level functions to call the parsers.
34361d06d6bSBaptiste Daroussin.Pp
3447295610fSBaptiste DaroussinUses the opaque type
34561d06d6bSBaptiste Daroussin.Vt struct roff
34661d06d6bSBaptiste Daroussinfrom
34761d06d6bSBaptiste Daroussin.Pa roff.c
34861d06d6bSBaptiste Daroussinfor function prototypes.
34961d06d6bSBaptiste DaroussinUses the type
35061d06d6bSBaptiste Daroussin.Vt struct roff_man
35161d06d6bSBaptiste Daroussinfrom
35245a5aec3SBaptiste Daroussin.Qq Pa roff.h
35361d06d6bSBaptiste Daroussinas an opaque type for function prototypes.
35461d06d6bSBaptiste Daroussin.It Qq Pa roff_int.h
3557295610fSBaptiste DaroussinParser internals shared by multiple parsers.
3567295610fSBaptiste DaroussinCan be used in all parsers, but not in main programs or formatters.
3577295610fSBaptiste Daroussin.Pp
35861d06d6bSBaptiste DaroussinRequires
35961d06d6bSBaptiste Daroussin.Qq Pa roff.h
36061d06d6bSBaptiste Daroussinfor
3617295610fSBaptiste Daroussin.Vt enum roff_type
3627295610fSBaptiste Daroussinand
3637295610fSBaptiste Daroussin.Vt enum roff_tok .
36461d06d6bSBaptiste Daroussin.Pp
3657295610fSBaptiste DaroussinProvides
3667295610fSBaptiste Daroussin.Vt enum roff_next ,
3677295610fSBaptiste Daroussin.Vt struct roff_man ,
3687295610fSBaptiste Daroussinfunctions named
36961d06d6bSBaptiste Daroussin.Fn roff_*
3707295610fSBaptiste Daroussinto handle roff nodes,
3717295610fSBaptiste Daroussin.Fn roffhash_alloc ,
3727295610fSBaptiste Daroussin.Fn roffhash_find ,
3737295610fSBaptiste Daroussin.Fn roffhash_free ,
3747295610fSBaptiste Daroussinand
3757295610fSBaptiste Daroussin.Fn roff_validate ,
3767295610fSBaptiste Daroussinand the two special functions
37761d06d6bSBaptiste Daroussin.Fn man_breakscope
37861d06d6bSBaptiste Daroussinand
37961d06d6bSBaptiste Daroussin.Fn mdoc_argv_free
38061d06d6bSBaptiste Daroussinbecause the latter two are needed by
38145a5aec3SBaptiste Daroussin.Pa roff.c .
38261d06d6bSBaptiste Daroussin.Pp
38361d06d6bSBaptiste DaroussinUses the types
3847295610fSBaptiste Daroussin.Vt struct ohash
38561d06d6bSBaptiste Daroussinfrom
38645a5aec3SBaptiste Daroussin.Qq Pa mandoc_ohash.h ,
3877295610fSBaptiste Daroussin.Vt struct roff_node
3887295610fSBaptiste Daroussinand
3897295610fSBaptiste Daroussin.Vt struct roff_meta
3907295610fSBaptiste Daroussinfrom
39145a5aec3SBaptiste Daroussin.Qq Pa roff.h ,
3927295610fSBaptiste Daroussin.Vt struct roff
3937295610fSBaptiste Daroussinfrom
3947295610fSBaptiste Daroussin.Pa roff.c ,
39561d06d6bSBaptiste Daroussinand
39661d06d6bSBaptiste Daroussin.Vt struct mdoc_arg
39761d06d6bSBaptiste Daroussinfrom
39845a5aec3SBaptiste Daroussin.Qq Pa mdoc.h
39961d06d6bSBaptiste Daroussinas opaque types for function prototypes.
40061d06d6bSBaptiste Daroussin.It Qq Pa libmdoc.h
40161d06d6bSBaptiste DaroussinRequires
40261d06d6bSBaptiste Daroussin.Qq Pa roff.h
40361d06d6bSBaptiste Daroussinfor
40461d06d6bSBaptiste Daroussin.Vt enum roff_tok
40561d06d6bSBaptiste Daroussinand
4067295610fSBaptiste Daroussin.Vt enum roff_sec .
40761d06d6bSBaptiste Daroussin.Pp
40861d06d6bSBaptiste DaroussinProvides
40961d06d6bSBaptiste Daroussin.Vt enum margserr ,
41061d06d6bSBaptiste Daroussin.Vt enum mdelim ,
41161d06d6bSBaptiste Daroussin.Vt struct mdoc_macro ,
41261d06d6bSBaptiste Daroussinand many functions internal to the
41361d06d6bSBaptiste Daroussin.Xr mdoc 7
41461d06d6bSBaptiste Daroussinparser.
41561d06d6bSBaptiste Daroussin.Pp
41661d06d6bSBaptiste DaroussinUses the types
41761d06d6bSBaptiste Daroussin.Vt struct roff_node
41861d06d6bSBaptiste Daroussinfrom
41945a5aec3SBaptiste Daroussin.Qq Pa roff.h ,
4207295610fSBaptiste Daroussin.Vt struct roff_man
4217295610fSBaptiste Daroussinfrom
42245a5aec3SBaptiste Daroussin.Qq Pa roff_int.h ,
4237295610fSBaptiste Daroussinand
4247295610fSBaptiste Daroussin.Vt struct mdoc_arg
4257295610fSBaptiste Daroussinfrom
42645a5aec3SBaptiste Daroussin.Qq Pa mdoc.h
42761d06d6bSBaptiste Daroussinas opaque types for function prototypes.
42861d06d6bSBaptiste Daroussin.Pp
42961d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include
4307295610fSBaptiste Daroussininterfaces of different parsers.
43161d06d6bSBaptiste Daroussin.It Qq Pa libman.h
43261d06d6bSBaptiste DaroussinRequires
43361d06d6bSBaptiste Daroussin.Qq Pa roff.h
43461d06d6bSBaptiste Daroussinfor
43561d06d6bSBaptiste Daroussin.Vt enum roff_tok .
43661d06d6bSBaptiste Daroussin.Pp
43761d06d6bSBaptiste DaroussinProvides
43861d06d6bSBaptiste Daroussin.Vt struct man_macro
43961d06d6bSBaptiste Daroussinand some functions internal to the
44061d06d6bSBaptiste Daroussin.Xr man 7
44161d06d6bSBaptiste Daroussinparser.
44261d06d6bSBaptiste Daroussin.Pp
44361d06d6bSBaptiste DaroussinUses the types
44461d06d6bSBaptiste Daroussin.Vt struct roff_node
44561d06d6bSBaptiste Daroussinfrom
44645a5aec3SBaptiste Daroussin.Qq Pa roff.h
4477295610fSBaptiste Daroussinand
4487295610fSBaptiste Daroussin.Vt struct roff_man
4497295610fSBaptiste Daroussinfrom
45045a5aec3SBaptiste Daroussin.Qq Pa roff_int.h
45161d06d6bSBaptiste Daroussinas opaque types for function prototypes.
45261d06d6bSBaptiste Daroussin.Pp
45361d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include
4547295610fSBaptiste Daroussininterfaces of different parsers.
4557295610fSBaptiste Daroussin.It Qq Pa eqn_parse.h
4567295610fSBaptiste DaroussinExternal interface of the
4577295610fSBaptiste Daroussin.Xr eqn 7
4587295610fSBaptiste Daroussinparser, for use in the
4597295610fSBaptiste Daroussin.Xr roff 7
4607295610fSBaptiste Daroussinand
4617295610fSBaptiste Daroussin.Xr eqn 7
4627295610fSBaptiste Daroussinparsers only.
4637295610fSBaptiste Daroussin.Pp
46461d06d6bSBaptiste DaroussinRequires
46561d06d6bSBaptiste Daroussin.In sys/types.h
46661d06d6bSBaptiste Daroussinfor
4677295610fSBaptiste Daroussin.Vt size_t .
4687295610fSBaptiste Daroussin.Pp
4697295610fSBaptiste DaroussinProvides
4707295610fSBaptiste Daroussin.Vt struct eqn_node
4717295610fSBaptiste Daroussinand the functions
4727295610fSBaptiste Daroussin.Fn eqn_alloc ,
4737295610fSBaptiste Daroussin.Fn eqn_box_new ,
4747295610fSBaptiste Daroussin.Fn eqn_box_free ,
4757295610fSBaptiste Daroussin.Fn eqn_free ,
4767295610fSBaptiste Daroussin.Fn eqn_parse ,
4777295610fSBaptiste Daroussin.Fn eqn_read ,
47861d06d6bSBaptiste Daroussinand
4797295610fSBaptiste Daroussin.Fn eqn_reset .
4807295610fSBaptiste Daroussin.Pp
4817295610fSBaptiste DaroussinUses the type
4827295610fSBaptiste Daroussin.Vt struct eqn_box
4837295610fSBaptiste Daroussinfrom
48445a5aec3SBaptiste Daroussin.Qq Pa mandoc.h
4857295610fSBaptiste Daroussinas an opaque type for function prototypes.
4867295610fSBaptiste DaroussinUses the types
4877295610fSBaptiste Daroussin.Vt struct roff_node
4887295610fSBaptiste Daroussinfrom
48945a5aec3SBaptiste Daroussin.Qq Pa roff.h
4907295610fSBaptiste Daroussinand
4917295610fSBaptiste Daroussin.Vt struct eqn_def
4927295610fSBaptiste Daroussinfrom
4937295610fSBaptiste Daroussin.Pa eqn.c
4947295610fSBaptiste Daroussinas opaque struct members.
4957295610fSBaptiste Daroussin.Pp
4967295610fSBaptiste DaroussinWhen this header is included, the same file should not include
4977295610fSBaptiste Daroussininternals of different parsers.
4987295610fSBaptiste Daroussin.It Qq Pa tbl_parse.h
4997295610fSBaptiste DaroussinExternal interface of the
5007295610fSBaptiste Daroussin.Xr tbl 7
5017295610fSBaptiste Daroussinparser, for use in the
5027295610fSBaptiste Daroussin.Xr roff 7
5037295610fSBaptiste Daroussinand
5047295610fSBaptiste Daroussin.Xr tbl 7
5057295610fSBaptiste Daroussinparsers only.
5067295610fSBaptiste Daroussin.Pp
5077295610fSBaptiste DaroussinProvides the functions documented in
5087295610fSBaptiste Daroussin.Xr tbl 3 .
5097295610fSBaptiste Daroussin.Pp
5107295610fSBaptiste DaroussinUses the types
5117295610fSBaptiste Daroussin.Vt struct tbl_span
5127295610fSBaptiste Daroussinfrom
51345a5aec3SBaptiste Daroussin.Qq Pa tbl.h
5147295610fSBaptiste Daroussinand
5157295610fSBaptiste Daroussin.Vt struct tbl_node
5167295610fSBaptiste Daroussinfrom
51745a5aec3SBaptiste Daroussin.Qq Pa tbl_int.h
5187295610fSBaptiste Daroussinas opaque types for function prototypes.
5197295610fSBaptiste Daroussin.Pp
5207295610fSBaptiste DaroussinWhen this header is included, the same file should not include
5217295610fSBaptiste Daroussininternals of different parsers.
5227295610fSBaptiste Daroussin.It Qq Pa tbl_int.h
5237295610fSBaptiste DaroussinInternal interfaces of the
5247295610fSBaptiste Daroussin.Xr tbl 7
5257295610fSBaptiste Daroussinparser, for use inside the
5267295610fSBaptiste Daroussin.Xr tbl 7
5277295610fSBaptiste Daroussinparser only.
5287295610fSBaptiste Daroussin.Pp
5297295610fSBaptiste DaroussinRequires
5307295610fSBaptiste Daroussin.Qq Pa tbl.h
53161d06d6bSBaptiste Daroussinfor
5327295610fSBaptiste Daroussin.Vt struct tbl_opts .
53361d06d6bSBaptiste Daroussin.Pp
53461d06d6bSBaptiste DaroussinProvides
53561d06d6bSBaptiste Daroussin.Vt enum tbl_part ,
53661d06d6bSBaptiste Daroussin.Vt struct tbl_node ,
5377295610fSBaptiste Daroussinand the functions
5387295610fSBaptiste Daroussin.Fn tbl_option ,
5397295610fSBaptiste Daroussin.Fn tbl_layout ,
5407295610fSBaptiste Daroussin.Fn tbl_data ,
5417295610fSBaptiste Daroussin.Fn tbl_cdata ,
54261d06d6bSBaptiste Daroussinand
5437295610fSBaptiste Daroussin.Fn tbl_reset .
54461d06d6bSBaptiste Daroussin.Pp
54561d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include
5467295610fSBaptiste Daroussininterfaces of different parsers.
54761d06d6bSBaptiste Daroussin.El
54861d06d6bSBaptiste Daroussin.Ss Formatter interface
54961d06d6bSBaptiste DaroussinThese headers should be included after any parser interface headers.
55061d06d6bSBaptiste DaroussinNo parser internal headers should be included by the same file.
55161d06d6bSBaptiste Daroussin.Bl -tag -width Ds
55261d06d6bSBaptiste Daroussin.It Qq Pa out.h
55361d06d6bSBaptiste DaroussinRequires
55461d06d6bSBaptiste Daroussin.In sys/types.h
55561d06d6bSBaptiste Daroussinfor
55661d06d6bSBaptiste Daroussin.Vt size_t .
55761d06d6bSBaptiste Daroussin.Pp
55861d06d6bSBaptiste DaroussinProvides
55961d06d6bSBaptiste Daroussin.Vt enum roffscale ,
56061d06d6bSBaptiste Daroussin.Vt struct roffcol ,
56161d06d6bSBaptiste Daroussin.Vt struct roffsu ,
56261d06d6bSBaptiste Daroussin.Vt struct rofftbl ,
56361d06d6bSBaptiste Daroussin.Fn a2roffsu ,
56461d06d6bSBaptiste Daroussinand
56561d06d6bSBaptiste Daroussin.Fn tblcalc .
56661d06d6bSBaptiste Daroussin.Pp
56761d06d6bSBaptiste DaroussinUses
56861d06d6bSBaptiste Daroussin.Vt struct tbl_span
56961d06d6bSBaptiste Daroussinfrom
57045a5aec3SBaptiste Daroussin.Qq Pa mandoc.h
57161d06d6bSBaptiste Daroussinas an opaque type for function prototypes.
57261d06d6bSBaptiste Daroussin.Pp
57361d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include
57445a5aec3SBaptiste Daroussin.Qq Pa mansearch.h .
57561d06d6bSBaptiste Daroussin.It Qq Pa term.h
57661d06d6bSBaptiste DaroussinRequires
57761d06d6bSBaptiste Daroussin.In sys/types.h
57861d06d6bSBaptiste Daroussinfor
57961d06d6bSBaptiste Daroussin.Vt size_t
58061d06d6bSBaptiste Daroussinand
58161d06d6bSBaptiste Daroussin.Qq Pa out.h
58261d06d6bSBaptiste Daroussinfor
58361d06d6bSBaptiste Daroussin.Vt struct roffsu
58461d06d6bSBaptiste Daroussinand
58561d06d6bSBaptiste Daroussin.Vt struct rofftbl .
58661d06d6bSBaptiste Daroussin.Pp
58761d06d6bSBaptiste DaroussinProvides
58861d06d6bSBaptiste Daroussin.Vt enum termenc ,
58961d06d6bSBaptiste Daroussin.Vt enum termfont ,
59061d06d6bSBaptiste Daroussin.Vt enum termtype ,
59161d06d6bSBaptiste Daroussin.Vt struct termp_tbl ,
59261d06d6bSBaptiste Daroussin.Vt struct termp ,
59361d06d6bSBaptiste Daroussin.Fn roff_term_pre ,
59461d06d6bSBaptiste Daroussinand many terminal formatting functions.
59561d06d6bSBaptiste Daroussin.Pp
59661d06d6bSBaptiste DaroussinUses the opaque type
59761d06d6bSBaptiste Daroussin.Vt struct termp_ps
59861d06d6bSBaptiste Daroussinfrom
59961d06d6bSBaptiste Daroussin.Pa term_ps.c .
60061d06d6bSBaptiste DaroussinUses
60161d06d6bSBaptiste Daroussin.Vt struct tbl_span
60261d06d6bSBaptiste Daroussinand
60361d06d6bSBaptiste Daroussin.Vt struct eqn_box
60461d06d6bSBaptiste Daroussinfrom
60545a5aec3SBaptiste Daroussin.Qq Pa mandoc.h
60661d06d6bSBaptiste Daroussinand
60761d06d6bSBaptiste Daroussin.Vt struct roff_meta
60861d06d6bSBaptiste Daroussinand
60961d06d6bSBaptiste Daroussin.Vt struct roff_node
61061d06d6bSBaptiste Daroussinfrom
61145a5aec3SBaptiste Daroussin.Qq Pa roff.h
61261d06d6bSBaptiste Daroussinas opaque types for function prototypes.
61361d06d6bSBaptiste Daroussin.Pp
61461d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include
61545a5aec3SBaptiste Daroussin.Qq Pa html.h
61661d06d6bSBaptiste Daroussinor
61745a5aec3SBaptiste Daroussin.Qq Pa mansearch.h .
618*6d38604fSBaptiste Daroussin.It Qq Pa tag_term.h
619*6d38604fSBaptiste DaroussinRequires
620*6d38604fSBaptiste Daroussin.In sys/types.h
621*6d38604fSBaptiste Daroussinfor
622*6d38604fSBaptiste Daroussin.Vt size_t
623*6d38604fSBaptiste Daroussinand
624*6d38604fSBaptiste Daroussin.In stdio.h
625*6d38604fSBaptiste Daroussinfor
626*6d38604fSBaptiste Daroussin.Vt FILE .
627*6d38604fSBaptiste Daroussin.Pp
628*6d38604fSBaptiste DaroussinProvides an interface to generate
629*6d38604fSBaptiste Daroussin.Xr ctags 1
630*6d38604fSBaptiste Daroussinfiles for the
631*6d38604fSBaptiste Daroussin.Ic :t
632*6d38604fSBaptiste Daroussinfunctionality mentioned in
633*6d38604fSBaptiste Daroussin.Xr man 1 .
634*6d38604fSBaptiste Daroussin.Pp
635*6d38604fSBaptiste DaroussinUses the type
636*6d38604fSBaptiste Daroussin.Vt struct roff_node
637*6d38604fSBaptiste Daroussinfrom
638*6d38604fSBaptiste Daroussin.Qq Pa roff.h
639*6d38604fSBaptiste Daroussinas an opaque type for function prototypes.
640*6d38604fSBaptiste Daroussin.Pp
641*6d38604fSBaptiste DaroussinWhen this header is included, the same file should not include
642*6d38604fSBaptiste Daroussin.Qq Pa html.h
643*6d38604fSBaptiste Daroussinor
644*6d38604fSBaptiste Daroussin.Qq Pa mansearch.h .
64561d06d6bSBaptiste Daroussin.It Qq Pa html.h
64661d06d6bSBaptiste DaroussinRequires
64761d06d6bSBaptiste Daroussin.In sys/types.h
64861d06d6bSBaptiste Daroussinfor
6497295610fSBaptiste Daroussin.Vt size_t ,
65045a5aec3SBaptiste Daroussin.Qq Pa mandoc.h
6517295610fSBaptiste Daroussinfor
6527295610fSBaptiste Daroussin.Vt enum mandoc_esc ,
65345a5aec3SBaptiste Daroussin.Qq Pa roff.h
65445a5aec3SBaptiste Daroussinfor
65545a5aec3SBaptiste Daroussin.Vt enum roff_tok ,
65661d06d6bSBaptiste Daroussinand
65761d06d6bSBaptiste Daroussin.Qq Pa out.h
65861d06d6bSBaptiste Daroussinfor
65961d06d6bSBaptiste Daroussin.Vt struct roffsu
66061d06d6bSBaptiste Daroussinand
66161d06d6bSBaptiste Daroussin.Vt struct rofftbl .
66261d06d6bSBaptiste Daroussin.Pp
66361d06d6bSBaptiste DaroussinProvides
66461d06d6bSBaptiste Daroussin.Vt enum htmltag ,
66561d06d6bSBaptiste Daroussin.Vt enum htmlattr ,
66661d06d6bSBaptiste Daroussin.Vt enum htmlfont ,
66761d06d6bSBaptiste Daroussin.Vt struct tag ,
66861d06d6bSBaptiste Daroussin.Vt struct tagq ,
66961d06d6bSBaptiste Daroussin.Vt struct htmlpair ,
67061d06d6bSBaptiste Daroussin.Vt struct html ,
67161d06d6bSBaptiste Daroussin.Fn roff_html_pre ,
67261d06d6bSBaptiste Daroussinand many HTML formatting functions.
67361d06d6bSBaptiste Daroussin.Pp
67461d06d6bSBaptiste DaroussinUses
67561d06d6bSBaptiste Daroussin.Vt struct tbl_span
67661d06d6bSBaptiste Daroussinand
67761d06d6bSBaptiste Daroussin.Vt struct eqn_box
67861d06d6bSBaptiste Daroussinfrom
67945a5aec3SBaptiste Daroussin.Qq Pa mandoc.h
68061d06d6bSBaptiste Daroussinand
68161d06d6bSBaptiste Daroussin.Vt struct roff_node
68261d06d6bSBaptiste Daroussinfrom
68345a5aec3SBaptiste Daroussin.Qq Pa roff.h
68461d06d6bSBaptiste Daroussinas opaque types for function prototypes.
68561d06d6bSBaptiste Daroussin.Pp
68661d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include
687*6d38604fSBaptiste Daroussin.Qq Pa term.h ,
688*6d38604fSBaptiste Daroussin.Qq Pa tab_term.h ,
68961d06d6bSBaptiste Daroussinor
69045a5aec3SBaptiste Daroussin.Qq Pa mansearch.h .
69161d06d6bSBaptiste Daroussin.It Qq Pa main.h
69261d06d6bSBaptiste DaroussinProvides the top level steering functions for all formatters.
69361d06d6bSBaptiste Daroussin.Pp
69461d06d6bSBaptiste DaroussinUses the type
6957295610fSBaptiste Daroussin.Vt struct roff_meta
69661d06d6bSBaptiste Daroussinfrom
69745a5aec3SBaptiste Daroussin.Qq Pa roff.h
69861d06d6bSBaptiste Daroussinas an opaque type for function prototypes.
69961d06d6bSBaptiste Daroussin.It Qq Pa manconf.h
70061d06d6bSBaptiste DaroussinRequires
70161d06d6bSBaptiste Daroussin.In sys/types.h
70261d06d6bSBaptiste Daroussinfor
70361d06d6bSBaptiste Daroussin.Vt size_t .
70461d06d6bSBaptiste Daroussin.Pp
70561d06d6bSBaptiste DaroussinProvides
70661d06d6bSBaptiste Daroussin.Vt struct manconf ,
70761d06d6bSBaptiste Daroussin.Vt struct manpaths ,
70861d06d6bSBaptiste Daroussin.Vt struct manoutput ,
70961d06d6bSBaptiste Daroussinand the functions
71061d06d6bSBaptiste Daroussin.Fn manconf_parse ,
71161d06d6bSBaptiste Daroussin.Fn manconf_output ,
71261d06d6bSBaptiste Daroussin.Fn manconf_free ,
71361d06d6bSBaptiste Daroussinand
71461d06d6bSBaptiste Daroussin.Fn manpath_base .
71561d06d6bSBaptiste Daroussin.It Qq Pa mansearch.h
71661d06d6bSBaptiste DaroussinRequires
71761d06d6bSBaptiste Daroussin.In sys/types.h
71861d06d6bSBaptiste Daroussinfor
71961d06d6bSBaptiste Daroussin.Vt size_t
72061d06d6bSBaptiste Daroussinand
72161d06d6bSBaptiste Daroussin.In stdint.h
72261d06d6bSBaptiste Daroussinfor
72361d06d6bSBaptiste Daroussin.Vt uint64_t .
72461d06d6bSBaptiste Daroussin.Pp
72561d06d6bSBaptiste DaroussinProvides
72661d06d6bSBaptiste Daroussin.Vt enum argmode ,
72761d06d6bSBaptiste Daroussin.Vt struct manpage ,
72861d06d6bSBaptiste Daroussin.Vt struct mansearch ,
72961d06d6bSBaptiste Daroussinand the functions
73061d06d6bSBaptiste Daroussin.Fn mansearch
73161d06d6bSBaptiste Daroussinand
73261d06d6bSBaptiste Daroussin.Fn mansearch_free .
73361d06d6bSBaptiste Daroussin.Pp
73461d06d6bSBaptiste DaroussinUses
73561d06d6bSBaptiste Daroussin.Vt struct manpaths
73661d06d6bSBaptiste Daroussinfrom
73745a5aec3SBaptiste Daroussin.Qq Pa manconf.h
73861d06d6bSBaptiste Daroussinas an opaque type for function prototypes.
73961d06d6bSBaptiste Daroussin.Pp
74061d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include
74145a5aec3SBaptiste Daroussin.Qq Pa out.h ,
74245a5aec3SBaptiste Daroussin.Qq Pa term.h ,
743*6d38604fSBaptiste Daroussin.Qq Pa tab_term.h ,
74461d06d6bSBaptiste Daroussinor
74545a5aec3SBaptiste Daroussin.Qq Pa html.h .
74661d06d6bSBaptiste Daroussin.El
747