1*61d06d6bSBaptiste Daroussin.Dd $Mdocdate: July 8 2017 $ 2*61d06d6bSBaptiste Daroussin.Dt MANDOC_HEADERS 3 3*61d06d6bSBaptiste Daroussin.Os 4*61d06d6bSBaptiste Daroussin.Sh NAME 5*61d06d6bSBaptiste Daroussin.Nm mandoc_headers 6*61d06d6bSBaptiste Daroussin.Nd ordering of mandoc include files 7*61d06d6bSBaptiste Daroussin.Sh DESCRIPTION 8*61d06d6bSBaptiste DaroussinTo support a cleaner coding style, the mandoc header files do not 9*61d06d6bSBaptiste Daroussincontain any include directives and do not guard against multiple 10*61d06d6bSBaptiste Daroussininclusion. 11*61d06d6bSBaptiste DaroussinThe application developer has to make sure that the headers are 12*61d06d6bSBaptiste Daroussinincluded in a proper order, and that no header is included more 13*61d06d6bSBaptiste Daroussinthan once. 14*61d06d6bSBaptiste Daroussin.Pp 15*61d06d6bSBaptiste DaroussinThe headers and functions form three major groups: 16*61d06d6bSBaptiste Daroussin.Sx Parser interface , 17*61d06d6bSBaptiste Daroussin.Sx Parser internals , 18*61d06d6bSBaptiste Daroussinand 19*61d06d6bSBaptiste Daroussin.Sx Formatter interface . 20*61d06d6bSBaptiste Daroussin.Pp 21*61d06d6bSBaptiste DaroussinVarious rules are given below prohibiting the inclusion of certain 22*61d06d6bSBaptiste Daroussincombinations of headers into the same file. 23*61d06d6bSBaptiste DaroussinThe intention is to keep the following functional components 24*61d06d6bSBaptiste Daroussinseparate from each other: 25*61d06d6bSBaptiste Daroussin.Pp 26*61d06d6bSBaptiste Daroussin.Bl -dash -offset indent -compact 27*61d06d6bSBaptiste Daroussin.It 28*61d06d6bSBaptiste Daroussin.Xr mdoc 7 29*61d06d6bSBaptiste Daroussinparser 30*61d06d6bSBaptiste Daroussin.It 31*61d06d6bSBaptiste Daroussin.Xr man 7 32*61d06d6bSBaptiste Daroussinparser 33*61d06d6bSBaptiste Daroussin.It 34*61d06d6bSBaptiste Daroussin.Xr roff 7 35*61d06d6bSBaptiste Daroussinparser 36*61d06d6bSBaptiste Daroussin.It 37*61d06d6bSBaptiste Daroussin.Xr tbl 7 38*61d06d6bSBaptiste Daroussinparser 39*61d06d6bSBaptiste Daroussin.It 40*61d06d6bSBaptiste Daroussin.Xr eqn 7 41*61d06d6bSBaptiste Daroussinparser 42*61d06d6bSBaptiste Daroussin.It 43*61d06d6bSBaptiste Daroussinterminal formatters 44*61d06d6bSBaptiste Daroussin.It 45*61d06d6bSBaptiste DaroussinHTML formatters 46*61d06d6bSBaptiste Daroussin.It 47*61d06d6bSBaptiste Daroussinsearch tools 48*61d06d6bSBaptiste Daroussin.El 49*61d06d6bSBaptiste Daroussin.Pp 50*61d06d6bSBaptiste DaroussinNote that mere usage of an opaque struct type does 51*61d06d6bSBaptiste Daroussin.Em not 52*61d06d6bSBaptiste Daroussinrequire inclusion of the header where that type is defined. 53*61d06d6bSBaptiste Daroussin.Ss Parser interface 54*61d06d6bSBaptiste DaroussinEach of the following headers can be included without including 55*61d06d6bSBaptiste Daroussinany other mandoc header. 56*61d06d6bSBaptiste DaroussinThese headers should be included before any other mandoc headers. 57*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds 58*61d06d6bSBaptiste Daroussin.It Qq Pa mandoc_aux.h 59*61d06d6bSBaptiste DaroussinRequires 60*61d06d6bSBaptiste Daroussin.In sys/types.h 61*61d06d6bSBaptiste Daroussinfor 62*61d06d6bSBaptiste Daroussin.Vt size_t . 63*61d06d6bSBaptiste Daroussin.Pp 64*61d06d6bSBaptiste DaroussinProvides the utility functions documented in 65*61d06d6bSBaptiste Daroussin.Xr mandoc_malloc 3 . 66*61d06d6bSBaptiste Daroussin.It Qq Pa mandoc_ohash.h 67*61d06d6bSBaptiste DaroussinRequires 68*61d06d6bSBaptiste Daroussin.In stddef.h 69*61d06d6bSBaptiste Daroussinfor 70*61d06d6bSBaptiste Daroussin.Vt ptrdiff_t 71*61d06d6bSBaptiste Daroussinand 72*61d06d6bSBaptiste Daroussin.In stdint.h 73*61d06d6bSBaptiste Daroussinfor 74*61d06d6bSBaptiste Daroussin.Vt uint32_t . 75*61d06d6bSBaptiste Daroussin.Pp 76*61d06d6bSBaptiste DaroussinIncludes 77*61d06d6bSBaptiste Daroussin.In ohash.h 78*61d06d6bSBaptiste Daroussinand provides 79*61d06d6bSBaptiste Daroussin.Fn mandoc_ohash_init . 80*61d06d6bSBaptiste Daroussin.It Qq Pa mandoc.h 81*61d06d6bSBaptiste DaroussinRequires 82*61d06d6bSBaptiste Daroussin.In sys/types.h 83*61d06d6bSBaptiste Daroussinfor 84*61d06d6bSBaptiste Daroussin.Vt size_t . 85*61d06d6bSBaptiste Daroussin.Pp 86*61d06d6bSBaptiste DaroussinProvides 87*61d06d6bSBaptiste Daroussin.Vt enum mandoc_esc , 88*61d06d6bSBaptiste Daroussin.Vt enum mandocerr , 89*61d06d6bSBaptiste Daroussin.Vt enum mandoclevel , 90*61d06d6bSBaptiste Daroussin.Vt enum mandoc_os , 91*61d06d6bSBaptiste Daroussin.Vt enum tbl_cellt , 92*61d06d6bSBaptiste Daroussin.Vt enum tbl_datt , 93*61d06d6bSBaptiste Daroussin.Vt enum tbl_spant , 94*61d06d6bSBaptiste Daroussin.Vt enum eqn_boxt , 95*61d06d6bSBaptiste Daroussin.Vt enum eqn_fontt , 96*61d06d6bSBaptiste Daroussin.Vt enum eqn_pilet , 97*61d06d6bSBaptiste Daroussin.Vt enum eqn_post , 98*61d06d6bSBaptiste Daroussin.Vt struct tbl_opts , 99*61d06d6bSBaptiste Daroussin.Vt struct tbl_cell , 100*61d06d6bSBaptiste Daroussin.Vt struct tbl_row , 101*61d06d6bSBaptiste Daroussin.Vt struct tbl_dat , 102*61d06d6bSBaptiste Daroussin.Vt struct tbl_span , 103*61d06d6bSBaptiste Daroussin.Vt struct eqn_box , 104*61d06d6bSBaptiste Daroussinthe function prototype typedef 105*61d06d6bSBaptiste Daroussin.Fn mandocmsg , 106*61d06d6bSBaptiste Daroussinthe function 107*61d06d6bSBaptiste Daroussin.Xr mandoc_escape 3 , 108*61d06d6bSBaptiste Daroussinthe functions described in 109*61d06d6bSBaptiste Daroussin.Xr mchars_alloc 3 , 110*61d06d6bSBaptiste Daroussinand the functions 111*61d06d6bSBaptiste Daroussin.Fn mparse_* 112*61d06d6bSBaptiste Daroussindescribed in 113*61d06d6bSBaptiste Daroussin.Xr mandoc 3 . 114*61d06d6bSBaptiste Daroussin.Pp 115*61d06d6bSBaptiste DaroussinUses the opaque type 116*61d06d6bSBaptiste Daroussin.Vt struct mparse 117*61d06d6bSBaptiste Daroussinfrom 118*61d06d6bSBaptiste Daroussin.Pa read.c 119*61d06d6bSBaptiste Daroussinfor function prototypes. 120*61d06d6bSBaptiste DaroussinUses the type 121*61d06d6bSBaptiste Daroussin.Vt struct roff_man 122*61d06d6bSBaptiste Daroussinfrom 123*61d06d6bSBaptiste Daroussin.Pa roff.h 124*61d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 125*61d06d6bSBaptiste Daroussin.It Qq Pa mandoc_xr.h 126*61d06d6bSBaptiste DaroussinProvides 127*61d06d6bSBaptiste Daroussin.Vt struct mandoc_xr 128*61d06d6bSBaptiste Daroussinand the functions 129*61d06d6bSBaptiste Daroussin.Fn mandoc_xr_reset , 130*61d06d6bSBaptiste Daroussin.Fn mandoc_xr_add , 131*61d06d6bSBaptiste Daroussin.Fn mandoc_xr_get , 132*61d06d6bSBaptiste Daroussinand 133*61d06d6bSBaptiste Daroussin.Fn mandoc_xr_free . 134*61d06d6bSBaptiste Daroussin.It Qq Pa roff.h 135*61d06d6bSBaptiste DaroussinRequires 136*61d06d6bSBaptiste Daroussin.Qq Pa mandoc_ohash.h 137*61d06d6bSBaptiste Daroussinfor 138*61d06d6bSBaptiste Daroussin.Vt struct ohash 139*61d06d6bSBaptiste Daroussinand 140*61d06d6bSBaptiste Daroussin.Qq Pa mandoc.h 141*61d06d6bSBaptiste Daroussinfor 142*61d06d6bSBaptiste Daroussin.Vt enum mandoc_os . 143*61d06d6bSBaptiste Daroussin.Pp 144*61d06d6bSBaptiste DaroussinProvides 145*61d06d6bSBaptiste Daroussin.Vt enum mdoc_endbody , 146*61d06d6bSBaptiste Daroussin.Vt enum roff_macroset , 147*61d06d6bSBaptiste Daroussin.Vt enum roff_next , 148*61d06d6bSBaptiste Daroussin.Vt enum roff_sec , 149*61d06d6bSBaptiste Daroussin.Vt enum roff_tok , 150*61d06d6bSBaptiste Daroussin.Vt enum roff_type , 151*61d06d6bSBaptiste Daroussin.Vt struct roff_man , 152*61d06d6bSBaptiste Daroussin.Vt struct roff_meta , 153*61d06d6bSBaptiste Daroussin.Vt struct roff_node , 154*61d06d6bSBaptiste Daroussinthe constant array 155*61d06d6bSBaptiste Daroussin.Va roff_name 156*61d06d6bSBaptiste Daroussinand the functions 157*61d06d6bSBaptiste Daroussin.Fn deroff , 158*61d06d6bSBaptiste Daroussin.Fn roffhash_alloc , 159*61d06d6bSBaptiste Daroussin.Fn roffhash_find , 160*61d06d6bSBaptiste Daroussin.Fn roffhash_free , 161*61d06d6bSBaptiste Daroussinand 162*61d06d6bSBaptiste Daroussin.Fn roff_validate . 163*61d06d6bSBaptiste Daroussin.Pp 164*61d06d6bSBaptiste DaroussinUses pointers to the types 165*61d06d6bSBaptiste Daroussin.Vt struct mdoc_arg 166*61d06d6bSBaptiste Daroussinand 167*61d06d6bSBaptiste Daroussin.Vt union mdoc_data 168*61d06d6bSBaptiste Daroussinfrom 169*61d06d6bSBaptiste Daroussin.Pa mdoc.h 170*61d06d6bSBaptiste Daroussinas opaque struct members. 171*61d06d6bSBaptiste Daroussin.El 172*61d06d6bSBaptiste Daroussin.Pp 173*61d06d6bSBaptiste DaroussinThe following two require 174*61d06d6bSBaptiste Daroussin.Qq Pa roff.h 175*61d06d6bSBaptiste Daroussinbut no other mandoc headers. 176*61d06d6bSBaptiste DaroussinAfterwards, any other mandoc headers can be included as needed. 177*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds 178*61d06d6bSBaptiste Daroussin.It Qq Pa mdoc.h 179*61d06d6bSBaptiste DaroussinRequires 180*61d06d6bSBaptiste Daroussin.In sys/types.h 181*61d06d6bSBaptiste Daroussinfor 182*61d06d6bSBaptiste Daroussin.Vt size_t . 183*61d06d6bSBaptiste Daroussin.Pp 184*61d06d6bSBaptiste DaroussinProvides 185*61d06d6bSBaptiste Daroussin.Vt enum mdocargt , 186*61d06d6bSBaptiste Daroussin.Vt enum mdoc_auth , 187*61d06d6bSBaptiste Daroussin.Vt enum mdoc_disp , 188*61d06d6bSBaptiste Daroussin.Vt enum mdoc_font , 189*61d06d6bSBaptiste Daroussin.Vt enum mdoc_list , 190*61d06d6bSBaptiste Daroussin.Vt struct mdoc_argv , 191*61d06d6bSBaptiste Daroussin.Vt struct mdoc_arg , 192*61d06d6bSBaptiste Daroussin.Vt struct mdoc_an , 193*61d06d6bSBaptiste Daroussin.Vt struct mdoc_bd , 194*61d06d6bSBaptiste Daroussin.Vt struct mdoc_bf , 195*61d06d6bSBaptiste Daroussin.Vt struct mdoc_bl , 196*61d06d6bSBaptiste Daroussin.Vt struct mdoc_rs , 197*61d06d6bSBaptiste Daroussin.Vt union mdoc_data , 198*61d06d6bSBaptiste Daroussinand the functions 199*61d06d6bSBaptiste Daroussin.Fn mdoc_* 200*61d06d6bSBaptiste Daroussindescribed in 201*61d06d6bSBaptiste Daroussin.Xr mandoc 3 . 202*61d06d6bSBaptiste Daroussin.Pp 203*61d06d6bSBaptiste DaroussinUses the type 204*61d06d6bSBaptiste Daroussin.Vt struct roff_man 205*61d06d6bSBaptiste Daroussinfrom 206*61d06d6bSBaptiste Daroussin.Pa roff.h 207*61d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 208*61d06d6bSBaptiste Daroussin.Pp 209*61d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 210*61d06d6bSBaptiste Daroussin.Pa libman.h 211*61d06d6bSBaptiste Daroussinor 212*61d06d6bSBaptiste Daroussin.Pa libroff.h . 213*61d06d6bSBaptiste Daroussin.It Qq Pa man.h 214*61d06d6bSBaptiste DaroussinProvides the functions 215*61d06d6bSBaptiste Daroussin.Fn man_* 216*61d06d6bSBaptiste Daroussindescribed in 217*61d06d6bSBaptiste Daroussin.Xr mandoc 3 . 218*61d06d6bSBaptiste Daroussin.Pp 219*61d06d6bSBaptiste DaroussinUses the opaque type 220*61d06d6bSBaptiste Daroussin.Vt struct mparse 221*61d06d6bSBaptiste Daroussinfrom 222*61d06d6bSBaptiste Daroussin.Pa read.c 223*61d06d6bSBaptiste Daroussinfor function prototypes. 224*61d06d6bSBaptiste DaroussinUses the type 225*61d06d6bSBaptiste Daroussin.Vt struct roff_man 226*61d06d6bSBaptiste Daroussinfrom 227*61d06d6bSBaptiste Daroussin.Pa roff.h 228*61d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 229*61d06d6bSBaptiste Daroussin.Pp 230*61d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 231*61d06d6bSBaptiste Daroussin.Pa libmdoc.h 232*61d06d6bSBaptiste Daroussinor 233*61d06d6bSBaptiste Daroussin.Pa libroff.h . 234*61d06d6bSBaptiste Daroussin.El 235*61d06d6bSBaptiste Daroussin.Ss Parser internals 236*61d06d6bSBaptiste DaroussinThe following headers require inclusion of a parser interface header 237*61d06d6bSBaptiste Daroussinbefore they can be included. 238*61d06d6bSBaptiste DaroussinAll parser interface headers should precede all parser internal headers. 239*61d06d6bSBaptiste DaroussinWhen any parser internal headers are included, the same file should 240*61d06d6bSBaptiste Daroussinnot include any formatter headers. 241*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds 242*61d06d6bSBaptiste Daroussin.It Qq Pa libmandoc.h 243*61d06d6bSBaptiste DaroussinRequires 244*61d06d6bSBaptiste Daroussin.In sys/types.h 245*61d06d6bSBaptiste Daroussinfor 246*61d06d6bSBaptiste Daroussin.Vt size_t 247*61d06d6bSBaptiste Daroussinand 248*61d06d6bSBaptiste Daroussin.Qq Pa mandoc.h 249*61d06d6bSBaptiste Daroussinfor 250*61d06d6bSBaptiste Daroussin.Vt enum mandocerr . 251*61d06d6bSBaptiste Daroussin.Pp 252*61d06d6bSBaptiste DaroussinProvides 253*61d06d6bSBaptiste Daroussin.Vt enum rofferr , 254*61d06d6bSBaptiste Daroussin.Vt struct buf , 255*61d06d6bSBaptiste Daroussinutility functions needed by multiple parsers, 256*61d06d6bSBaptiste Daroussinand the top-level functions to call the parsers. 257*61d06d6bSBaptiste Daroussin.Pp 258*61d06d6bSBaptiste DaroussinUses the opaque types 259*61d06d6bSBaptiste Daroussin.Vt struct mparse 260*61d06d6bSBaptiste Daroussinfrom 261*61d06d6bSBaptiste Daroussin.Pa read.c 262*61d06d6bSBaptiste Daroussinand 263*61d06d6bSBaptiste Daroussin.Vt struct roff 264*61d06d6bSBaptiste Daroussinfrom 265*61d06d6bSBaptiste Daroussin.Pa roff.c 266*61d06d6bSBaptiste Daroussinfor function prototypes. 267*61d06d6bSBaptiste DaroussinUses the type 268*61d06d6bSBaptiste Daroussin.Vt struct roff_man 269*61d06d6bSBaptiste Daroussinfrom 270*61d06d6bSBaptiste Daroussin.Pa roff.h 271*61d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 272*61d06d6bSBaptiste Daroussin.It Qq Pa roff_int.h 273*61d06d6bSBaptiste DaroussinRequires 274*61d06d6bSBaptiste Daroussin.Qq Pa roff.h 275*61d06d6bSBaptiste Daroussinfor 276*61d06d6bSBaptiste Daroussin.Vt enum roff_type . 277*61d06d6bSBaptiste Daroussin.Pp 278*61d06d6bSBaptiste DaroussinProvides functions named 279*61d06d6bSBaptiste Daroussin.Fn roff_* 280*61d06d6bSBaptiste Daroussinto handle roff nodes and the two special functions 281*61d06d6bSBaptiste Daroussin.Fn man_breakscope 282*61d06d6bSBaptiste Daroussinand 283*61d06d6bSBaptiste Daroussin.Fn mdoc_argv_free 284*61d06d6bSBaptiste Daroussinbecause the latter two are needed by 285*61d06d6bSBaptiste Daroussin.Qq Pa roff.c . 286*61d06d6bSBaptiste Daroussin.Pp 287*61d06d6bSBaptiste DaroussinUses the types 288*61d06d6bSBaptiste Daroussin.Vt struct roff_man 289*61d06d6bSBaptiste Daroussinand 290*61d06d6bSBaptiste Daroussin.Vt struct roff_node 291*61d06d6bSBaptiste Daroussinfrom 292*61d06d6bSBaptiste Daroussin.Pa roff.h 293*61d06d6bSBaptiste Daroussinand 294*61d06d6bSBaptiste Daroussin.Vt struct mdoc_arg 295*61d06d6bSBaptiste Daroussinfrom 296*61d06d6bSBaptiste Daroussin.Pa mdoc.h 297*61d06d6bSBaptiste Daroussinas opaque types for function prototypes. 298*61d06d6bSBaptiste Daroussin.It Qq Pa libmdoc.h 299*61d06d6bSBaptiste DaroussinRequires 300*61d06d6bSBaptiste Daroussin.Qq Pa roff.h 301*61d06d6bSBaptiste Daroussinfor 302*61d06d6bSBaptiste Daroussin.Vt enum roff_tok 303*61d06d6bSBaptiste Daroussinand 304*61d06d6bSBaptiste Daroussin.Qq Pa mdoc.h 305*61d06d6bSBaptiste Daroussinfor 306*61d06d6bSBaptiste Daroussin.Vt enum mdoc_* 307*61d06d6bSBaptiste Daroussinand 308*61d06d6bSBaptiste Daroussin.Vt struct mdoc_* . 309*61d06d6bSBaptiste Daroussin.Pp 310*61d06d6bSBaptiste DaroussinProvides 311*61d06d6bSBaptiste Daroussin.Vt enum margserr , 312*61d06d6bSBaptiste Daroussin.Vt enum mdelim , 313*61d06d6bSBaptiste Daroussin.Vt struct mdoc_macro , 314*61d06d6bSBaptiste Daroussinand many functions internal to the 315*61d06d6bSBaptiste Daroussin.Xr mdoc 7 316*61d06d6bSBaptiste Daroussinparser. 317*61d06d6bSBaptiste Daroussin.Pp 318*61d06d6bSBaptiste DaroussinUses the opaque type 319*61d06d6bSBaptiste Daroussin.Vt struct mparse 320*61d06d6bSBaptiste Daroussinfrom 321*61d06d6bSBaptiste Daroussin.Pa read.c . 322*61d06d6bSBaptiste DaroussinUses the types 323*61d06d6bSBaptiste Daroussin.Vt struct roff_man 324*61d06d6bSBaptiste Daroussinand 325*61d06d6bSBaptiste Daroussin.Vt struct roff_node 326*61d06d6bSBaptiste Daroussinfrom 327*61d06d6bSBaptiste Daroussin.Pa roff.h 328*61d06d6bSBaptiste Daroussinas opaque types for function prototypes. 329*61d06d6bSBaptiste Daroussin.Pp 330*61d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 331*61d06d6bSBaptiste Daroussin.Pa man.h , 332*61d06d6bSBaptiste Daroussin.Pa libman.h , 333*61d06d6bSBaptiste Daroussinor 334*61d06d6bSBaptiste Daroussin.Pa libroff.h . 335*61d06d6bSBaptiste Daroussin.It Qq Pa libman.h 336*61d06d6bSBaptiste DaroussinRequires 337*61d06d6bSBaptiste Daroussin.Qq Pa roff.h 338*61d06d6bSBaptiste Daroussinfor 339*61d06d6bSBaptiste Daroussin.Vt enum roff_tok . 340*61d06d6bSBaptiste Daroussin.Pp 341*61d06d6bSBaptiste DaroussinProvides 342*61d06d6bSBaptiste Daroussin.Vt struct man_macro 343*61d06d6bSBaptiste Daroussinand some functions internal to the 344*61d06d6bSBaptiste Daroussin.Xr man 7 345*61d06d6bSBaptiste Daroussinparser. 346*61d06d6bSBaptiste Daroussin.Pp 347*61d06d6bSBaptiste DaroussinUses the types 348*61d06d6bSBaptiste Daroussin.Vt struct roff_man 349*61d06d6bSBaptiste Daroussinand 350*61d06d6bSBaptiste Daroussin.Vt struct roff_node 351*61d06d6bSBaptiste Daroussinfrom 352*61d06d6bSBaptiste Daroussin.Pa roff.h 353*61d06d6bSBaptiste Daroussinas opaque types for function prototypes. 354*61d06d6bSBaptiste Daroussin.Pp 355*61d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 356*61d06d6bSBaptiste Daroussin.Pa mdoc.h , 357*61d06d6bSBaptiste Daroussin.Pa libmdoc.h , 358*61d06d6bSBaptiste Daroussinor 359*61d06d6bSBaptiste Daroussin.Pa libroff.h . 360*61d06d6bSBaptiste Daroussin.It Qq Pa libroff.h 361*61d06d6bSBaptiste DaroussinRequires 362*61d06d6bSBaptiste Daroussin.In sys/types.h 363*61d06d6bSBaptiste Daroussinfor 364*61d06d6bSBaptiste Daroussin.Vt size_t 365*61d06d6bSBaptiste Daroussinand 366*61d06d6bSBaptiste Daroussin.Qq Pa mandoc.h 367*61d06d6bSBaptiste Daroussinfor 368*61d06d6bSBaptiste Daroussin.Vt struct tbl_* 369*61d06d6bSBaptiste Daroussinand 370*61d06d6bSBaptiste Daroussin.Vt struct eqn_box . 371*61d06d6bSBaptiste Daroussin.Pp 372*61d06d6bSBaptiste DaroussinProvides 373*61d06d6bSBaptiste Daroussin.Vt enum tbl_part , 374*61d06d6bSBaptiste Daroussin.Vt struct tbl_node , 375*61d06d6bSBaptiste Daroussin.Vt struct eqn_def , 376*61d06d6bSBaptiste Daroussin.Vt struct eqn_node , 377*61d06d6bSBaptiste Daroussinand many functions internal to the 378*61d06d6bSBaptiste Daroussin.Xr tbl 7 379*61d06d6bSBaptiste Daroussinand 380*61d06d6bSBaptiste Daroussin.Xr eqn 7 381*61d06d6bSBaptiste Daroussinparsers. 382*61d06d6bSBaptiste Daroussin.Pp 383*61d06d6bSBaptiste DaroussinUses the opaque type 384*61d06d6bSBaptiste Daroussin.Vt struct mparse 385*61d06d6bSBaptiste Daroussinfrom 386*61d06d6bSBaptiste Daroussin.Pa read.c . 387*61d06d6bSBaptiste Daroussin.Pp 388*61d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 389*61d06d6bSBaptiste Daroussin.Pa man.h , 390*61d06d6bSBaptiste Daroussin.Pa mdoc.h , 391*61d06d6bSBaptiste Daroussin.Pa libman.h , 392*61d06d6bSBaptiste Daroussinor 393*61d06d6bSBaptiste Daroussin.Pa libmdoc.h . 394*61d06d6bSBaptiste Daroussin.El 395*61d06d6bSBaptiste Daroussin.Ss Formatter interface 396*61d06d6bSBaptiste DaroussinThese headers should be included after any parser interface headers. 397*61d06d6bSBaptiste DaroussinNo parser internal headers should be included by the same file. 398*61d06d6bSBaptiste Daroussin.Bl -tag -width Ds 399*61d06d6bSBaptiste Daroussin.It Qq Pa out.h 400*61d06d6bSBaptiste DaroussinRequires 401*61d06d6bSBaptiste Daroussin.In sys/types.h 402*61d06d6bSBaptiste Daroussinfor 403*61d06d6bSBaptiste Daroussin.Vt size_t . 404*61d06d6bSBaptiste Daroussin.Pp 405*61d06d6bSBaptiste DaroussinProvides 406*61d06d6bSBaptiste Daroussin.Vt enum roffscale , 407*61d06d6bSBaptiste Daroussin.Vt struct roffcol , 408*61d06d6bSBaptiste Daroussin.Vt struct roffsu , 409*61d06d6bSBaptiste Daroussin.Vt struct rofftbl , 410*61d06d6bSBaptiste Daroussin.Fn a2roffsu , 411*61d06d6bSBaptiste Daroussinand 412*61d06d6bSBaptiste Daroussin.Fn tblcalc . 413*61d06d6bSBaptiste Daroussin.Pp 414*61d06d6bSBaptiste DaroussinUses 415*61d06d6bSBaptiste Daroussin.Vt struct tbl_span 416*61d06d6bSBaptiste Daroussinfrom 417*61d06d6bSBaptiste Daroussin.Pa mandoc.h 418*61d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 419*61d06d6bSBaptiste Daroussin.Pp 420*61d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 421*61d06d6bSBaptiste Daroussin.Pa mansearch.h . 422*61d06d6bSBaptiste Daroussin.It Qq Pa term.h 423*61d06d6bSBaptiste DaroussinRequires 424*61d06d6bSBaptiste Daroussin.In sys/types.h 425*61d06d6bSBaptiste Daroussinfor 426*61d06d6bSBaptiste Daroussin.Vt size_t 427*61d06d6bSBaptiste Daroussinand 428*61d06d6bSBaptiste Daroussin.Qq Pa out.h 429*61d06d6bSBaptiste Daroussinfor 430*61d06d6bSBaptiste Daroussin.Vt struct roffsu 431*61d06d6bSBaptiste Daroussinand 432*61d06d6bSBaptiste Daroussin.Vt struct rofftbl . 433*61d06d6bSBaptiste Daroussin.Pp 434*61d06d6bSBaptiste DaroussinProvides 435*61d06d6bSBaptiste Daroussin.Vt enum termenc , 436*61d06d6bSBaptiste Daroussin.Vt enum termfont , 437*61d06d6bSBaptiste Daroussin.Vt enum termtype , 438*61d06d6bSBaptiste Daroussin.Vt struct termp_tbl , 439*61d06d6bSBaptiste Daroussin.Vt struct termp , 440*61d06d6bSBaptiste Daroussin.Fn roff_term_pre , 441*61d06d6bSBaptiste Daroussinand many terminal formatting functions. 442*61d06d6bSBaptiste Daroussin.Pp 443*61d06d6bSBaptiste DaroussinUses the opaque type 444*61d06d6bSBaptiste Daroussin.Vt struct termp_ps 445*61d06d6bSBaptiste Daroussinfrom 446*61d06d6bSBaptiste Daroussin.Pa term_ps.c . 447*61d06d6bSBaptiste DaroussinUses 448*61d06d6bSBaptiste Daroussin.Vt struct tbl_span 449*61d06d6bSBaptiste Daroussinand 450*61d06d6bSBaptiste Daroussin.Vt struct eqn_box 451*61d06d6bSBaptiste Daroussinfrom 452*61d06d6bSBaptiste Daroussin.Pa mandoc.h 453*61d06d6bSBaptiste Daroussinand 454*61d06d6bSBaptiste Daroussin.Vt struct roff_meta 455*61d06d6bSBaptiste Daroussinand 456*61d06d6bSBaptiste Daroussin.Vt struct roff_node 457*61d06d6bSBaptiste Daroussinfrom 458*61d06d6bSBaptiste Daroussin.Pa roff.h 459*61d06d6bSBaptiste Daroussinas opaque types for function prototypes. 460*61d06d6bSBaptiste Daroussin.Pp 461*61d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 462*61d06d6bSBaptiste Daroussin.Pa html.h 463*61d06d6bSBaptiste Daroussinor 464*61d06d6bSBaptiste Daroussin.Pa mansearch.h . 465*61d06d6bSBaptiste Daroussin.It Qq Pa html.h 466*61d06d6bSBaptiste DaroussinRequires 467*61d06d6bSBaptiste Daroussin.In sys/types.h 468*61d06d6bSBaptiste Daroussinfor 469*61d06d6bSBaptiste Daroussin.Vt size_t 470*61d06d6bSBaptiste Daroussinand 471*61d06d6bSBaptiste Daroussin.Qq Pa out.h 472*61d06d6bSBaptiste Daroussinfor 473*61d06d6bSBaptiste Daroussin.Vt struct roffsu 474*61d06d6bSBaptiste Daroussinand 475*61d06d6bSBaptiste Daroussin.Vt struct rofftbl . 476*61d06d6bSBaptiste Daroussin.Pp 477*61d06d6bSBaptiste DaroussinProvides 478*61d06d6bSBaptiste Daroussin.Vt enum htmltag , 479*61d06d6bSBaptiste Daroussin.Vt enum htmlattr , 480*61d06d6bSBaptiste Daroussin.Vt enum htmlfont , 481*61d06d6bSBaptiste Daroussin.Vt struct tag , 482*61d06d6bSBaptiste Daroussin.Vt struct tagq , 483*61d06d6bSBaptiste Daroussin.Vt struct htmlpair , 484*61d06d6bSBaptiste Daroussin.Vt struct html , 485*61d06d6bSBaptiste Daroussin.Fn roff_html_pre , 486*61d06d6bSBaptiste Daroussinand many HTML formatting functions. 487*61d06d6bSBaptiste Daroussin.Pp 488*61d06d6bSBaptiste DaroussinUses 489*61d06d6bSBaptiste Daroussin.Vt struct tbl_span 490*61d06d6bSBaptiste Daroussinand 491*61d06d6bSBaptiste Daroussin.Vt struct eqn_box 492*61d06d6bSBaptiste Daroussinfrom 493*61d06d6bSBaptiste Daroussin.Pa mandoc.h 494*61d06d6bSBaptiste Daroussinand 495*61d06d6bSBaptiste Daroussin.Vt struct roff_node 496*61d06d6bSBaptiste Daroussinfrom 497*61d06d6bSBaptiste Daroussin.Pa roff.h 498*61d06d6bSBaptiste Daroussinas opaque types for function prototypes. 499*61d06d6bSBaptiste Daroussin.Pp 500*61d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 501*61d06d6bSBaptiste Daroussin.Pa term.h 502*61d06d6bSBaptiste Daroussinor 503*61d06d6bSBaptiste Daroussin.Pa mansearch.h . 504*61d06d6bSBaptiste Daroussin.It Qq Pa tag.h 505*61d06d6bSBaptiste DaroussinRequires 506*61d06d6bSBaptiste Daroussin.In sys/types.h 507*61d06d6bSBaptiste Daroussinfor 508*61d06d6bSBaptiste Daroussin.Vt size_t . 509*61d06d6bSBaptiste Daroussin.Pp 510*61d06d6bSBaptiste DaroussinProvides an interface to generate 511*61d06d6bSBaptiste Daroussin.Xr ctags 1 512*61d06d6bSBaptiste Daroussinfiles for the 513*61d06d6bSBaptiste Daroussin.Ic :t 514*61d06d6bSBaptiste Daroussinfunctionality mentioned in 515*61d06d6bSBaptiste Daroussin.Xr man 1 . 516*61d06d6bSBaptiste Daroussin.It Qq Pa main.h 517*61d06d6bSBaptiste DaroussinProvides the top level steering functions for all formatters. 518*61d06d6bSBaptiste Daroussin.Pp 519*61d06d6bSBaptiste DaroussinUses the type 520*61d06d6bSBaptiste Daroussin.Vt struct roff_man 521*61d06d6bSBaptiste Daroussinfrom 522*61d06d6bSBaptiste Daroussin.Pa roff.h 523*61d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 524*61d06d6bSBaptiste Daroussin.It Qq Pa manconf.h 525*61d06d6bSBaptiste DaroussinRequires 526*61d06d6bSBaptiste Daroussin.In sys/types.h 527*61d06d6bSBaptiste Daroussinfor 528*61d06d6bSBaptiste Daroussin.Vt size_t . 529*61d06d6bSBaptiste Daroussin.Pp 530*61d06d6bSBaptiste DaroussinProvides 531*61d06d6bSBaptiste Daroussin.Vt struct manconf , 532*61d06d6bSBaptiste Daroussin.Vt struct manpaths , 533*61d06d6bSBaptiste Daroussin.Vt struct manoutput , 534*61d06d6bSBaptiste Daroussinand the functions 535*61d06d6bSBaptiste Daroussin.Fn manconf_parse , 536*61d06d6bSBaptiste Daroussin.Fn manconf_output , 537*61d06d6bSBaptiste Daroussin.Fn manconf_free , 538*61d06d6bSBaptiste Daroussinand 539*61d06d6bSBaptiste Daroussin.Fn manpath_base . 540*61d06d6bSBaptiste Daroussin.It Qq Pa mansearch.h 541*61d06d6bSBaptiste DaroussinRequires 542*61d06d6bSBaptiste Daroussin.In sys/types.h 543*61d06d6bSBaptiste Daroussinfor 544*61d06d6bSBaptiste Daroussin.Vt size_t 545*61d06d6bSBaptiste Daroussinand 546*61d06d6bSBaptiste Daroussin.In stdint.h 547*61d06d6bSBaptiste Daroussinfor 548*61d06d6bSBaptiste Daroussin.Vt uint64_t . 549*61d06d6bSBaptiste Daroussin.Pp 550*61d06d6bSBaptiste DaroussinProvides 551*61d06d6bSBaptiste Daroussin.Vt enum argmode , 552*61d06d6bSBaptiste Daroussin.Vt struct manpage , 553*61d06d6bSBaptiste Daroussin.Vt struct mansearch , 554*61d06d6bSBaptiste Daroussinand the functions 555*61d06d6bSBaptiste Daroussin.Fn mansearch 556*61d06d6bSBaptiste Daroussinand 557*61d06d6bSBaptiste Daroussin.Fn mansearch_free . 558*61d06d6bSBaptiste Daroussin.Pp 559*61d06d6bSBaptiste DaroussinUses 560*61d06d6bSBaptiste Daroussin.Vt struct manpaths 561*61d06d6bSBaptiste Daroussinfrom 562*61d06d6bSBaptiste Daroussin.Pa manconf.h 563*61d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 564*61d06d6bSBaptiste Daroussin.Pp 565*61d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 566*61d06d6bSBaptiste Daroussin.Pa out.h , 567*61d06d6bSBaptiste Daroussin.Pa term.h , 568*61d06d6bSBaptiste Daroussinor 569*61d06d6bSBaptiste Daroussin.Pa html.h . 570*61d06d6bSBaptiste Daroussin.El 571