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