1*c1c95addSBrooks Davis.\" $Id: mandoc_headers.3,v 1.35 2022/04/14 16:43:44 schwarze Exp $ 245a5aec3SBaptiste Daroussin.\" 3*c1c95addSBrooks Davis.\" Copyright (c) 2014-2022 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*c1c95addSBrooks Davis.Dd $Mdocdate: April 14 2022 $ 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 28*c1c95addSBrooks Davisincluded in the order shown in this manual page, 29*c1c95addSBrooks Davisand that no header is included more than 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 . 86*c1c95addSBrooks Davis.Pp 87*c1c95addSBrooks DavisWhen this header is included, the same file must not include 88*c1c95addSBrooks Davis.Qq Pa mandoc_dbg.h 89*c1c95addSBrooks Davisbecause 90*c1c95addSBrooks Davis.Qq Pa mandoc_aux.h 91*c1c95addSBrooks Davisautomatically includes 92*c1c95addSBrooks Davis.Qq Pa mandoc_dbg.h 93*c1c95addSBrooks Davisif and only if the preprocessor symbol 94*c1c95addSBrooks Davis.Dv DEBUG_MEMORY 95*c1c95addSBrooks Davisis defined. 96*c1c95addSBrooks Davis.It Qq Pa mandoc_dbg.h 97*c1c95addSBrooks DavisDebugging utility functions and 98*c1c95addSBrooks Davisdebugging wrappers around memory allocation functions. 99*c1c95addSBrooks Davis.Pp 100*c1c95addSBrooks DavisRequires 101*c1c95addSBrooks Davis.In sys/types.h 102*c1c95addSBrooks Davisfor 103*c1c95addSBrooks Davis.Vt size_t . 104*c1c95addSBrooks Davis.Pp 105*c1c95addSBrooks DavisProvides the functions documented in 106*c1c95addSBrooks Davis.Xr mandoc_dbg_init 3 . 107*c1c95addSBrooks Davis.Pp 108*c1c95addSBrooks DavisThis header must not be included unless the preprocessor symbol 109*c1c95addSBrooks Davis.Dv DEBUG_MEMORY 110*c1c95addSBrooks Davisis defined. 111*c1c95addSBrooks DavisWhen this header is included, the same file must not include 112*c1c95addSBrooks Davis.Qq Pa mandoc_aux.h . 11361d06d6bSBaptiste Daroussin.It Qq Pa mandoc_ohash.h 1147295610fSBaptiste DaroussinHashing utility functions; can be used everywhere. 1157295610fSBaptiste Daroussin.Pp 11661d06d6bSBaptiste DaroussinRequires 11761d06d6bSBaptiste Daroussin.In stddef.h 11861d06d6bSBaptiste Daroussinfor 11961d06d6bSBaptiste Daroussin.Vt ptrdiff_t 12061d06d6bSBaptiste Daroussinand 12161d06d6bSBaptiste Daroussin.In stdint.h 12261d06d6bSBaptiste Daroussinfor 12361d06d6bSBaptiste Daroussin.Vt uint32_t . 12461d06d6bSBaptiste Daroussin.Pp 12561d06d6bSBaptiste DaroussinIncludes 12661d06d6bSBaptiste Daroussin.In ohash.h 12761d06d6bSBaptiste Daroussinand provides 12861d06d6bSBaptiste Daroussin.Fn mandoc_ohash_init . 12961d06d6bSBaptiste Daroussin.It Qq Pa mandoc.h 1307295610fSBaptiste DaroussinError handling, escape sequence, and character utilities; 1317295610fSBaptiste Daroussincan be used everywhere. 1327295610fSBaptiste Daroussin.Pp 13361d06d6bSBaptiste DaroussinRequires 13461d06d6bSBaptiste Daroussin.In sys/types.h 13561d06d6bSBaptiste Daroussinfor 1367295610fSBaptiste Daroussin.Vt size_t 1377295610fSBaptiste Daroussinand 1387295610fSBaptiste Daroussin.In stdio.h 1397295610fSBaptiste Daroussinfor 1407295610fSBaptiste Daroussin.Vt FILE . 14161d06d6bSBaptiste Daroussin.Pp 14261d06d6bSBaptiste DaroussinProvides 14361d06d6bSBaptiste Daroussin.Vt enum mandoc_esc , 14461d06d6bSBaptiste Daroussin.Vt enum mandocerr , 14561d06d6bSBaptiste Daroussin.Vt enum mandoclevel , 14661d06d6bSBaptiste Daroussinthe function 14761d06d6bSBaptiste Daroussin.Xr mandoc_escape 3 , 14861d06d6bSBaptiste Daroussinthe functions described in 14961d06d6bSBaptiste Daroussin.Xr mchars_alloc 3 , 1507295610fSBaptiste Daroussinand the 1517295610fSBaptiste Daroussin.Fn mandoc_msg* 1527295610fSBaptiste Daroussinfunctions. 15361d06d6bSBaptiste Daroussin.It Qq Pa roff.h 1547295610fSBaptiste DaroussinCommon data types for all syntax trees and related functions; 1557295610fSBaptiste Daroussincan be used everywhere. 15661d06d6bSBaptiste Daroussin.Pp 15761d06d6bSBaptiste DaroussinProvides 1587295610fSBaptiste Daroussin.Vt enum mandoc_os , 15961d06d6bSBaptiste Daroussin.Vt enum mdoc_endbody , 16061d06d6bSBaptiste Daroussin.Vt enum roff_macroset , 16161d06d6bSBaptiste Daroussin.Vt enum roff_sec , 16261d06d6bSBaptiste Daroussin.Vt enum roff_tok , 16361d06d6bSBaptiste Daroussin.Vt enum roff_type , 16461d06d6bSBaptiste Daroussin.Vt struct roff_man , 16561d06d6bSBaptiste Daroussin.Vt struct roff_meta , 16661d06d6bSBaptiste Daroussin.Vt struct roff_node , 16761d06d6bSBaptiste Daroussinthe constant array 16861d06d6bSBaptiste Daroussin.Va roff_name 1697295610fSBaptiste Daroussinand the function 1707295610fSBaptiste Daroussin.Fn deroff . 17161d06d6bSBaptiste Daroussin.Pp 17261d06d6bSBaptiste DaroussinUses pointers to the types 1737295610fSBaptiste Daroussin.Vt struct ohash 1747295610fSBaptiste Daroussinfrom 17545a5aec3SBaptiste Daroussin.Qq Pa mandoc_ohash.h , 17661d06d6bSBaptiste Daroussin.Vt struct mdoc_arg 17761d06d6bSBaptiste Daroussinand 17861d06d6bSBaptiste Daroussin.Vt union mdoc_data 17961d06d6bSBaptiste Daroussinfrom 18045a5aec3SBaptiste Daroussin.Qq Pa mdoc.h , 1817295610fSBaptiste Daroussin.Vt struct tbl_span 1827295610fSBaptiste Daroussinfrom 18345a5aec3SBaptiste Daroussin.Qq Pa tbl.h , 1847295610fSBaptiste Daroussinand 1857295610fSBaptiste Daroussin.Vt struct eqn_box 1867295610fSBaptiste Daroussinfrom 18745a5aec3SBaptiste Daroussin.Qq Pa eqn.h 18861d06d6bSBaptiste Daroussinas opaque struct members. 1897295610fSBaptiste Daroussin.It Qq Pa tbl.h 1907295610fSBaptiste DaroussinData structures for the 1917295610fSBaptiste Daroussin.Xr tbl 7 1927295610fSBaptiste Daroussinparse tree; can be used everywhere. 1937295610fSBaptiste Daroussin.Pp 1947295610fSBaptiste DaroussinRequires 1957295610fSBaptiste Daroussin.In sys/types.h 1967295610fSBaptiste Daroussinfor 1976d38604fSBaptiste Daroussin.Vt size_t 1986d38604fSBaptiste Daroussinand 1996d38604fSBaptiste Daroussin.Qq Pa mandoc.h 2006d38604fSBaptiste Daroussinfor 2016d38604fSBaptiste Daroussin.Vt enum mandoc_esc . 2027295610fSBaptiste Daroussin.Pp 2037295610fSBaptiste DaroussinProvides 2047295610fSBaptiste Daroussin.Vt enum tbl_cellt , 2057295610fSBaptiste Daroussin.Vt enum tbl_datt , 2067295610fSBaptiste Daroussin.Vt enum tbl_spant , 2077295610fSBaptiste Daroussin.Vt struct tbl_opts , 2087295610fSBaptiste Daroussin.Vt struct tbl_cell , 2097295610fSBaptiste Daroussin.Vt struct tbl_row , 2107295610fSBaptiste Daroussin.Vt struct tbl_dat , 2117295610fSBaptiste Daroussinand 2127295610fSBaptiste Daroussin.Vt struct tbl_span . 2137295610fSBaptiste Daroussin.It Qq Pa eqn.h 2147295610fSBaptiste DaroussinData structures for the 2157295610fSBaptiste Daroussin.Xr eqn 7 2167295610fSBaptiste Daroussinparse tree; can be used everywhere. 2177295610fSBaptiste Daroussin.Pp 2187295610fSBaptiste DaroussinRequires 2197295610fSBaptiste Daroussin.In sys/types.h 2207295610fSBaptiste Daroussinfor 2217295610fSBaptiste Daroussin.Vt size_t . 2227295610fSBaptiste Daroussin.Pp 2237295610fSBaptiste DaroussinProvides 2247295610fSBaptiste Daroussin.Vt enum eqn_boxt , 2257295610fSBaptiste Daroussin.Vt enum eqn_fontt , 2267295610fSBaptiste Daroussin.Vt enum eqn_post , 2277295610fSBaptiste Daroussinand 2287295610fSBaptiste Daroussin.Vt struct eqn_box . 2297295610fSBaptiste Daroussin.It Qq Pa mandoc_parse.h 2307295610fSBaptiste DaroussinTop level parser interface, for use in the main program 2317295610fSBaptiste Daroussinand in the main parser, but not in formatters. 2327295610fSBaptiste Daroussin.Pp 2337295610fSBaptiste DaroussinRequires 23445a5aec3SBaptiste Daroussin.Qq Pa mandoc.h 2357295610fSBaptiste Daroussinfor 2367295610fSBaptiste Daroussin.Vt enum mandocerr 2377295610fSBaptiste Daroussinand 2387295610fSBaptiste Daroussin.Vt enum mandoclevel 2397295610fSBaptiste Daroussinand 24045a5aec3SBaptiste Daroussin.Qq Pa roff.h 2417295610fSBaptiste Daroussinfor 2427295610fSBaptiste Daroussin.Vt enum mandoc_os . 2437295610fSBaptiste Daroussin.Pp 2447295610fSBaptiste DaroussinUses the opaque type 2457295610fSBaptiste Daroussin.Vt struct mparse 2467295610fSBaptiste Daroussinfrom 2477295610fSBaptiste Daroussin.Pa read.c 2487295610fSBaptiste Daroussinfor function prototypes. 2497295610fSBaptiste DaroussinUses 2507295610fSBaptiste Daroussin.Vt struct roff_meta 2517295610fSBaptiste Daroussinfrom 25245a5aec3SBaptiste Daroussin.Qq Pa roff.h 2537295610fSBaptiste Daroussinas an opaque type for function prototypes. 2547295610fSBaptiste Daroussin.It Qq Pa mandoc_xr.h 2557295610fSBaptiste DaroussinCross reference validation; intended for use in the main program 2567295610fSBaptiste Daroussinand in parsers, but not in formatters. 2577295610fSBaptiste Daroussin.Pp 2587295610fSBaptiste DaroussinProvides 2597295610fSBaptiste Daroussin.Vt struct mandoc_xr 2607295610fSBaptiste Daroussinand the functions 2617295610fSBaptiste Daroussin.Fn mandoc_xr_reset , 2627295610fSBaptiste Daroussin.Fn mandoc_xr_add , 2637295610fSBaptiste Daroussin.Fn mandoc_xr_get , 2647295610fSBaptiste Daroussinand 2657295610fSBaptiste Daroussin.Fn mandoc_xr_free . 2666d38604fSBaptiste Daroussin.It Qq Pa tag.h 2676d38604fSBaptiste DaroussinInternal interfaces to tag syntax tree nodes, 2686d38604fSBaptiste Daroussinfor use by validation modules only. 2696d38604fSBaptiste Daroussin.Pp 2706d38604fSBaptiste DaroussinRequires 2716d38604fSBaptiste Daroussin.In limits.h 2726d38604fSBaptiste Daroussinfor 2736d38604fSBaptiste Daroussin.Dv INT_MAX . 2746d38604fSBaptiste Daroussin.Pp 2756d38604fSBaptiste DaroussinProvides the functions 2766d38604fSBaptiste Daroussin.Fn tag_alloc , 2776d38604fSBaptiste Daroussin.Fn tag_put , 2786d38604fSBaptiste Daroussin.Fn tag_check , 2796d38604fSBaptiste Daroussinand 2806d38604fSBaptiste Daroussin.Fn tag_free 2816d38604fSBaptiste Daroussinand some 2826d38604fSBaptiste Daroussin.Dv TAG_* 2836d38604fSBaptiste Daroussinconstants. 2846d38604fSBaptiste Daroussin.Pp 2856d38604fSBaptiste DaroussinUses the type 2866d38604fSBaptiste Daroussin.Vt struct roff_node 2876d38604fSBaptiste Daroussinfrom 2886d38604fSBaptiste Daroussin.Qq Pa roff.h 2896d38604fSBaptiste Daroussinas an opaque type for function prototypes. 29061d06d6bSBaptiste Daroussin.El 29161d06d6bSBaptiste Daroussin.Pp 29261d06d6bSBaptiste DaroussinThe following two require 29361d06d6bSBaptiste Daroussin.Qq Pa roff.h 29461d06d6bSBaptiste Daroussinbut no other mandoc headers. 29561d06d6bSBaptiste DaroussinAfterwards, any other mandoc headers can be included as needed. 29661d06d6bSBaptiste Daroussin.Bl -tag -width Ds 29761d06d6bSBaptiste Daroussin.It Qq Pa mdoc.h 29861d06d6bSBaptiste DaroussinRequires 29961d06d6bSBaptiste Daroussin.In sys/types.h 30061d06d6bSBaptiste Daroussinfor 30161d06d6bSBaptiste Daroussin.Vt size_t . 30261d06d6bSBaptiste Daroussin.Pp 30361d06d6bSBaptiste DaroussinProvides 30461d06d6bSBaptiste Daroussin.Vt enum mdocargt , 30561d06d6bSBaptiste Daroussin.Vt enum mdoc_auth , 30661d06d6bSBaptiste Daroussin.Vt enum mdoc_disp , 30761d06d6bSBaptiste Daroussin.Vt enum mdoc_font , 30861d06d6bSBaptiste Daroussin.Vt enum mdoc_list , 30961d06d6bSBaptiste Daroussin.Vt struct mdoc_argv , 31061d06d6bSBaptiste Daroussin.Vt struct mdoc_arg , 31161d06d6bSBaptiste Daroussin.Vt struct mdoc_an , 31261d06d6bSBaptiste Daroussin.Vt struct mdoc_bd , 31361d06d6bSBaptiste Daroussin.Vt struct mdoc_bf , 31461d06d6bSBaptiste Daroussin.Vt struct mdoc_bl , 31561d06d6bSBaptiste Daroussin.Vt struct mdoc_rs , 31661d06d6bSBaptiste Daroussin.Vt union mdoc_data , 31761d06d6bSBaptiste Daroussinand the functions 31861d06d6bSBaptiste Daroussin.Fn mdoc_* 31961d06d6bSBaptiste Daroussindescribed in 32061d06d6bSBaptiste Daroussin.Xr mandoc 3 . 32161d06d6bSBaptiste Daroussin.Pp 3227295610fSBaptiste DaroussinUses the types 3237295610fSBaptiste Daroussin.Vt struct roff_node 32461d06d6bSBaptiste Daroussinfrom 32545a5aec3SBaptiste Daroussin.Qq Pa roff.h 3267295610fSBaptiste Daroussinand 3277295610fSBaptiste Daroussin.Vt struct roff_man 3287295610fSBaptiste Daroussinfrom 32945a5aec3SBaptiste Daroussin.Qq Pa roff_int.h 3307295610fSBaptiste Daroussinas opaque types for function prototypes. 33161d06d6bSBaptiste Daroussin.Pp 33261d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 3337295610fSBaptiste Daroussininternals of different parsers. 33461d06d6bSBaptiste Daroussin.It Qq Pa man.h 33561d06d6bSBaptiste DaroussinProvides the functions 33661d06d6bSBaptiste Daroussin.Fn man_* 33761d06d6bSBaptiste Daroussindescribed in 33861d06d6bSBaptiste Daroussin.Xr mandoc 3 . 33961d06d6bSBaptiste Daroussin.Pp 34061d06d6bSBaptiste DaroussinUses the type 34161d06d6bSBaptiste Daroussin.Vt struct roff_man 34261d06d6bSBaptiste Daroussinfrom 34345a5aec3SBaptiste Daroussin.Qq Pa roff.h 34461d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 34561d06d6bSBaptiste Daroussin.Pp 34661d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 3477295610fSBaptiste Daroussininternals of different parsers. 34861d06d6bSBaptiste Daroussin.El 34961d06d6bSBaptiste Daroussin.Ss Parser internals 3507295610fSBaptiste DaroussinMost of the following headers require inclusion of a parser interface header 35161d06d6bSBaptiste Daroussinbefore they can be included. 35261d06d6bSBaptiste DaroussinAll parser interface headers should precede all parser internal headers. 35361d06d6bSBaptiste DaroussinWhen any parser internal headers are included, the same file should 35461d06d6bSBaptiste Daroussinnot include any formatter headers. 35561d06d6bSBaptiste Daroussin.Bl -tag -width Ds 35661d06d6bSBaptiste Daroussin.It Qq Pa libmandoc.h 35761d06d6bSBaptiste DaroussinRequires 35861d06d6bSBaptiste Daroussin.In sys/types.h 35961d06d6bSBaptiste Daroussinfor 36061d06d6bSBaptiste Daroussin.Vt size_t 36161d06d6bSBaptiste Daroussinand 36261d06d6bSBaptiste Daroussin.Qq Pa mandoc.h 36361d06d6bSBaptiste Daroussinfor 36461d06d6bSBaptiste Daroussin.Vt enum mandocerr . 36561d06d6bSBaptiste Daroussin.Pp 36661d06d6bSBaptiste DaroussinProvides 36761d06d6bSBaptiste Daroussin.Vt struct buf , 36861d06d6bSBaptiste Daroussinutility functions needed by multiple parsers, 36961d06d6bSBaptiste Daroussinand the top-level functions to call the parsers. 37061d06d6bSBaptiste Daroussin.Pp 3717295610fSBaptiste DaroussinUses the opaque type 37261d06d6bSBaptiste Daroussin.Vt struct roff 37361d06d6bSBaptiste Daroussinfrom 37461d06d6bSBaptiste Daroussin.Pa roff.c 37561d06d6bSBaptiste Daroussinfor function prototypes. 37661d06d6bSBaptiste DaroussinUses the type 37761d06d6bSBaptiste Daroussin.Vt struct roff_man 37861d06d6bSBaptiste Daroussinfrom 37945a5aec3SBaptiste Daroussin.Qq Pa roff.h 38061d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 38161d06d6bSBaptiste Daroussin.It Qq Pa roff_int.h 3827295610fSBaptiste DaroussinParser internals shared by multiple parsers. 3837295610fSBaptiste DaroussinCan be used in all parsers, but not in main programs or formatters. 3847295610fSBaptiste Daroussin.Pp 38561d06d6bSBaptiste DaroussinRequires 38661d06d6bSBaptiste Daroussin.Qq Pa roff.h 38761d06d6bSBaptiste Daroussinfor 3887295610fSBaptiste Daroussin.Vt enum roff_type 3897295610fSBaptiste Daroussinand 3907295610fSBaptiste Daroussin.Vt enum roff_tok . 39161d06d6bSBaptiste Daroussin.Pp 3927295610fSBaptiste DaroussinProvides 3937295610fSBaptiste Daroussin.Vt enum roff_next , 3947295610fSBaptiste Daroussin.Vt struct roff_man , 3957295610fSBaptiste Daroussinfunctions named 39661d06d6bSBaptiste Daroussin.Fn roff_* 3977295610fSBaptiste Daroussinto handle roff nodes, 3987295610fSBaptiste Daroussin.Fn roffhash_alloc , 3997295610fSBaptiste Daroussin.Fn roffhash_find , 4007295610fSBaptiste Daroussin.Fn roffhash_free , 4017295610fSBaptiste Daroussinand 4027295610fSBaptiste Daroussin.Fn roff_validate , 4037295610fSBaptiste Daroussinand the two special functions 40461d06d6bSBaptiste Daroussin.Fn man_breakscope 40561d06d6bSBaptiste Daroussinand 40661d06d6bSBaptiste Daroussin.Fn mdoc_argv_free 40761d06d6bSBaptiste Daroussinbecause the latter two are needed by 40845a5aec3SBaptiste Daroussin.Pa roff.c . 40961d06d6bSBaptiste Daroussin.Pp 41061d06d6bSBaptiste DaroussinUses the types 4117295610fSBaptiste Daroussin.Vt struct ohash 41261d06d6bSBaptiste Daroussinfrom 41345a5aec3SBaptiste Daroussin.Qq Pa mandoc_ohash.h , 4147295610fSBaptiste Daroussin.Vt struct roff_node 4157295610fSBaptiste Daroussinand 4167295610fSBaptiste Daroussin.Vt struct roff_meta 4177295610fSBaptiste Daroussinfrom 41845a5aec3SBaptiste Daroussin.Qq Pa roff.h , 4197295610fSBaptiste Daroussin.Vt struct roff 4207295610fSBaptiste Daroussinfrom 4217295610fSBaptiste Daroussin.Pa roff.c , 42261d06d6bSBaptiste Daroussinand 42361d06d6bSBaptiste Daroussin.Vt struct mdoc_arg 42461d06d6bSBaptiste Daroussinfrom 42545a5aec3SBaptiste Daroussin.Qq Pa mdoc.h 42661d06d6bSBaptiste Daroussinas opaque types for function prototypes. 42761d06d6bSBaptiste Daroussin.It Qq Pa libmdoc.h 42861d06d6bSBaptiste DaroussinRequires 42961d06d6bSBaptiste Daroussin.Qq Pa roff.h 43061d06d6bSBaptiste Daroussinfor 43161d06d6bSBaptiste Daroussin.Vt enum roff_tok 43261d06d6bSBaptiste Daroussinand 4337295610fSBaptiste Daroussin.Vt enum roff_sec . 43461d06d6bSBaptiste Daroussin.Pp 43561d06d6bSBaptiste DaroussinProvides 43661d06d6bSBaptiste Daroussin.Vt enum margserr , 43761d06d6bSBaptiste Daroussin.Vt enum mdelim , 43861d06d6bSBaptiste Daroussin.Vt struct mdoc_macro , 43961d06d6bSBaptiste Daroussinand many functions internal to the 44061d06d6bSBaptiste Daroussin.Xr mdoc 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 Daroussin.Vt struct roff_man 4487295610fSBaptiste Daroussinfrom 44945a5aec3SBaptiste Daroussin.Qq Pa roff_int.h , 4507295610fSBaptiste Daroussinand 4517295610fSBaptiste Daroussin.Vt struct mdoc_arg 4527295610fSBaptiste Daroussinfrom 45345a5aec3SBaptiste Daroussin.Qq Pa mdoc.h 45461d06d6bSBaptiste Daroussinas opaque types for function prototypes. 45561d06d6bSBaptiste Daroussin.Pp 45661d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 4577295610fSBaptiste Daroussininterfaces of different parsers. 45861d06d6bSBaptiste Daroussin.It Qq Pa libman.h 45961d06d6bSBaptiste DaroussinRequires 46061d06d6bSBaptiste Daroussin.Qq Pa roff.h 46161d06d6bSBaptiste Daroussinfor 46261d06d6bSBaptiste Daroussin.Vt enum roff_tok . 46361d06d6bSBaptiste Daroussin.Pp 46461d06d6bSBaptiste DaroussinProvides 46561d06d6bSBaptiste Daroussin.Vt struct man_macro 46661d06d6bSBaptiste Daroussinand some functions internal to the 46761d06d6bSBaptiste Daroussin.Xr man 7 46861d06d6bSBaptiste Daroussinparser. 46961d06d6bSBaptiste Daroussin.Pp 47061d06d6bSBaptiste DaroussinUses the types 47161d06d6bSBaptiste Daroussin.Vt struct roff_node 47261d06d6bSBaptiste Daroussinfrom 47345a5aec3SBaptiste Daroussin.Qq Pa roff.h 4747295610fSBaptiste Daroussinand 4757295610fSBaptiste Daroussin.Vt struct roff_man 4767295610fSBaptiste Daroussinfrom 47745a5aec3SBaptiste Daroussin.Qq Pa roff_int.h 47861d06d6bSBaptiste Daroussinas opaque types for function prototypes. 47961d06d6bSBaptiste Daroussin.Pp 48061d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 4817295610fSBaptiste Daroussininterfaces of different parsers. 4827295610fSBaptiste Daroussin.It Qq Pa eqn_parse.h 4837295610fSBaptiste DaroussinExternal interface of the 4847295610fSBaptiste Daroussin.Xr eqn 7 4857295610fSBaptiste Daroussinparser, for use in the 4867295610fSBaptiste Daroussin.Xr roff 7 4877295610fSBaptiste Daroussinand 4887295610fSBaptiste Daroussin.Xr eqn 7 4897295610fSBaptiste Daroussinparsers only. 4907295610fSBaptiste Daroussin.Pp 49161d06d6bSBaptiste DaroussinRequires 49261d06d6bSBaptiste Daroussin.In sys/types.h 49361d06d6bSBaptiste Daroussinfor 4947295610fSBaptiste Daroussin.Vt size_t . 4957295610fSBaptiste Daroussin.Pp 4967295610fSBaptiste DaroussinProvides 4977295610fSBaptiste Daroussin.Vt struct eqn_node 4987295610fSBaptiste Daroussinand the functions 4997295610fSBaptiste Daroussin.Fn eqn_alloc , 5007295610fSBaptiste Daroussin.Fn eqn_box_new , 5017295610fSBaptiste Daroussin.Fn eqn_box_free , 5027295610fSBaptiste Daroussin.Fn eqn_free , 5037295610fSBaptiste Daroussin.Fn eqn_parse , 5047295610fSBaptiste Daroussin.Fn eqn_read , 50561d06d6bSBaptiste Daroussinand 5067295610fSBaptiste Daroussin.Fn eqn_reset . 5077295610fSBaptiste Daroussin.Pp 5087295610fSBaptiste DaroussinUses the type 5097295610fSBaptiste Daroussin.Vt struct eqn_box 5107295610fSBaptiste Daroussinfrom 51145a5aec3SBaptiste Daroussin.Qq Pa mandoc.h 5127295610fSBaptiste Daroussinas an opaque type for function prototypes. 5137295610fSBaptiste DaroussinUses the types 5147295610fSBaptiste Daroussin.Vt struct roff_node 5157295610fSBaptiste Daroussinfrom 51645a5aec3SBaptiste Daroussin.Qq Pa roff.h 5177295610fSBaptiste Daroussinand 5187295610fSBaptiste Daroussin.Vt struct eqn_def 5197295610fSBaptiste Daroussinfrom 5207295610fSBaptiste Daroussin.Pa eqn.c 5217295610fSBaptiste Daroussinas opaque struct members. 5227295610fSBaptiste Daroussin.Pp 5237295610fSBaptiste DaroussinWhen this header is included, the same file should not include 5247295610fSBaptiste Daroussininternals of different parsers. 5257295610fSBaptiste Daroussin.It Qq Pa tbl_parse.h 5267295610fSBaptiste DaroussinExternal interface of the 5277295610fSBaptiste Daroussin.Xr tbl 7 5287295610fSBaptiste Daroussinparser, for use in the 5297295610fSBaptiste Daroussin.Xr roff 7 5307295610fSBaptiste Daroussinand 5317295610fSBaptiste Daroussin.Xr tbl 7 5327295610fSBaptiste Daroussinparsers only. 5337295610fSBaptiste Daroussin.Pp 5347295610fSBaptiste DaroussinProvides the functions documented in 5357295610fSBaptiste Daroussin.Xr tbl 3 . 5367295610fSBaptiste Daroussin.Pp 5377295610fSBaptiste DaroussinUses the types 5387295610fSBaptiste Daroussin.Vt struct tbl_span 5397295610fSBaptiste Daroussinfrom 54045a5aec3SBaptiste Daroussin.Qq Pa tbl.h 5417295610fSBaptiste Daroussinand 5427295610fSBaptiste Daroussin.Vt struct tbl_node 5437295610fSBaptiste Daroussinfrom 54445a5aec3SBaptiste Daroussin.Qq Pa tbl_int.h 5457295610fSBaptiste Daroussinas opaque types for function prototypes. 5467295610fSBaptiste Daroussin.Pp 5477295610fSBaptiste DaroussinWhen this header is included, the same file should not include 5487295610fSBaptiste Daroussininternals of different parsers. 5497295610fSBaptiste Daroussin.It Qq Pa tbl_int.h 5507295610fSBaptiste DaroussinInternal interfaces of the 5517295610fSBaptiste Daroussin.Xr tbl 7 5527295610fSBaptiste Daroussinparser, for use inside the 5537295610fSBaptiste Daroussin.Xr tbl 7 5547295610fSBaptiste Daroussinparser only. 5557295610fSBaptiste Daroussin.Pp 5567295610fSBaptiste DaroussinRequires 5577295610fSBaptiste Daroussin.Qq Pa tbl.h 55861d06d6bSBaptiste Daroussinfor 5597295610fSBaptiste Daroussin.Vt struct tbl_opts . 56061d06d6bSBaptiste Daroussin.Pp 56161d06d6bSBaptiste DaroussinProvides 56261d06d6bSBaptiste Daroussin.Vt enum tbl_part , 56361d06d6bSBaptiste Daroussin.Vt struct tbl_node , 5647295610fSBaptiste Daroussinand the functions 5657295610fSBaptiste Daroussin.Fn tbl_option , 5667295610fSBaptiste Daroussin.Fn tbl_layout , 5677295610fSBaptiste Daroussin.Fn tbl_data , 5687295610fSBaptiste Daroussin.Fn tbl_cdata , 56961d06d6bSBaptiste Daroussinand 5707295610fSBaptiste Daroussin.Fn tbl_reset . 57161d06d6bSBaptiste Daroussin.Pp 57261d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 5737295610fSBaptiste Daroussininterfaces of different parsers. 57461d06d6bSBaptiste Daroussin.El 57561d06d6bSBaptiste Daroussin.Ss Formatter interface 57661d06d6bSBaptiste DaroussinThese headers should be included after any parser interface headers. 57761d06d6bSBaptiste DaroussinNo parser internal headers should be included by the same file. 57861d06d6bSBaptiste Daroussin.Bl -tag -width Ds 57961d06d6bSBaptiste Daroussin.It Qq Pa out.h 58061d06d6bSBaptiste DaroussinRequires 58161d06d6bSBaptiste Daroussin.In sys/types.h 58261d06d6bSBaptiste Daroussinfor 58361d06d6bSBaptiste Daroussin.Vt size_t . 58461d06d6bSBaptiste Daroussin.Pp 58561d06d6bSBaptiste DaroussinProvides 58661d06d6bSBaptiste Daroussin.Vt enum roffscale , 58761d06d6bSBaptiste Daroussin.Vt struct roffcol , 58861d06d6bSBaptiste Daroussin.Vt struct roffsu , 58961d06d6bSBaptiste Daroussin.Vt struct rofftbl , 59061d06d6bSBaptiste Daroussin.Fn a2roffsu , 59161d06d6bSBaptiste Daroussinand 59261d06d6bSBaptiste Daroussin.Fn tblcalc . 59361d06d6bSBaptiste Daroussin.Pp 59461d06d6bSBaptiste DaroussinUses 59561d06d6bSBaptiste Daroussin.Vt struct tbl_span 59661d06d6bSBaptiste Daroussinfrom 59745a5aec3SBaptiste Daroussin.Qq Pa mandoc.h 59861d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 59961d06d6bSBaptiste Daroussin.Pp 60061d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 60145a5aec3SBaptiste Daroussin.Qq Pa mansearch.h . 60261d06d6bSBaptiste Daroussin.It Qq Pa term.h 60361d06d6bSBaptiste DaroussinRequires 60461d06d6bSBaptiste Daroussin.In sys/types.h 60561d06d6bSBaptiste Daroussinfor 60661d06d6bSBaptiste Daroussin.Vt size_t 60761d06d6bSBaptiste Daroussinand 60861d06d6bSBaptiste Daroussin.Qq Pa out.h 60961d06d6bSBaptiste Daroussinfor 61061d06d6bSBaptiste Daroussin.Vt struct roffsu 61161d06d6bSBaptiste Daroussinand 61261d06d6bSBaptiste Daroussin.Vt struct rofftbl . 61361d06d6bSBaptiste Daroussin.Pp 61461d06d6bSBaptiste DaroussinProvides 61561d06d6bSBaptiste Daroussin.Vt enum termenc , 61661d06d6bSBaptiste Daroussin.Vt enum termfont , 61761d06d6bSBaptiste Daroussin.Vt enum termtype , 61861d06d6bSBaptiste Daroussin.Vt struct termp_tbl , 61961d06d6bSBaptiste Daroussin.Vt struct termp , 62061d06d6bSBaptiste Daroussin.Fn roff_term_pre , 62161d06d6bSBaptiste Daroussinand many terminal formatting functions. 62261d06d6bSBaptiste Daroussin.Pp 62361d06d6bSBaptiste DaroussinUses the opaque type 62461d06d6bSBaptiste Daroussin.Vt struct termp_ps 62561d06d6bSBaptiste Daroussinfrom 62661d06d6bSBaptiste Daroussin.Pa term_ps.c . 62761d06d6bSBaptiste DaroussinUses 62861d06d6bSBaptiste Daroussin.Vt struct tbl_span 62961d06d6bSBaptiste Daroussinand 63061d06d6bSBaptiste Daroussin.Vt struct eqn_box 63161d06d6bSBaptiste Daroussinfrom 63245a5aec3SBaptiste Daroussin.Qq Pa mandoc.h 63361d06d6bSBaptiste Daroussinand 63461d06d6bSBaptiste Daroussin.Vt struct roff_meta 63561d06d6bSBaptiste Daroussinand 63661d06d6bSBaptiste Daroussin.Vt struct roff_node 63761d06d6bSBaptiste Daroussinfrom 63845a5aec3SBaptiste Daroussin.Qq Pa roff.h 63961d06d6bSBaptiste Daroussinas opaque types for function prototypes. 64061d06d6bSBaptiste Daroussin.Pp 64161d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 64245a5aec3SBaptiste Daroussin.Qq Pa html.h 64361d06d6bSBaptiste Daroussinor 64445a5aec3SBaptiste Daroussin.Qq Pa mansearch.h . 6456d38604fSBaptiste Daroussin.It Qq Pa tag_term.h 6466d38604fSBaptiste DaroussinRequires 6476d38604fSBaptiste Daroussin.In sys/types.h 6486d38604fSBaptiste Daroussinfor 6496d38604fSBaptiste Daroussin.Vt size_t 6506d38604fSBaptiste Daroussinand 6516d38604fSBaptiste Daroussin.In stdio.h 6526d38604fSBaptiste Daroussinfor 6536d38604fSBaptiste Daroussin.Vt FILE . 6546d38604fSBaptiste Daroussin.Pp 6556d38604fSBaptiste DaroussinProvides an interface to generate 6566d38604fSBaptiste Daroussin.Xr ctags 1 6576d38604fSBaptiste Daroussinfiles for the 6586d38604fSBaptiste Daroussin.Ic :t 6596d38604fSBaptiste Daroussinfunctionality mentioned in 6606d38604fSBaptiste Daroussin.Xr man 1 . 6616d38604fSBaptiste Daroussin.Pp 6626d38604fSBaptiste DaroussinUses the type 6636d38604fSBaptiste Daroussin.Vt struct roff_node 6646d38604fSBaptiste Daroussinfrom 6656d38604fSBaptiste Daroussin.Qq Pa roff.h 6666d38604fSBaptiste Daroussinas an opaque type for function prototypes. 6676d38604fSBaptiste Daroussin.Pp 6686d38604fSBaptiste DaroussinWhen this header is included, the same file should not include 6696d38604fSBaptiste Daroussin.Qq Pa html.h 6706d38604fSBaptiste Daroussinor 6716d38604fSBaptiste Daroussin.Qq Pa mansearch.h . 67261d06d6bSBaptiste Daroussin.It Qq Pa html.h 67361d06d6bSBaptiste DaroussinRequires 67461d06d6bSBaptiste Daroussin.In sys/types.h 67561d06d6bSBaptiste Daroussinfor 6767295610fSBaptiste Daroussin.Vt size_t , 67745a5aec3SBaptiste Daroussin.Qq Pa mandoc.h 6787295610fSBaptiste Daroussinfor 6797295610fSBaptiste Daroussin.Vt enum mandoc_esc , 68045a5aec3SBaptiste Daroussin.Qq Pa roff.h 68145a5aec3SBaptiste Daroussinfor 68245a5aec3SBaptiste Daroussin.Vt enum roff_tok , 68361d06d6bSBaptiste Daroussinand 68461d06d6bSBaptiste Daroussin.Qq Pa out.h 68561d06d6bSBaptiste Daroussinfor 68661d06d6bSBaptiste Daroussin.Vt struct roffsu 68761d06d6bSBaptiste Daroussinand 68861d06d6bSBaptiste Daroussin.Vt struct rofftbl . 68961d06d6bSBaptiste Daroussin.Pp 69061d06d6bSBaptiste DaroussinProvides 69161d06d6bSBaptiste Daroussin.Vt enum htmltag , 69261d06d6bSBaptiste Daroussin.Vt enum htmlattr , 69361d06d6bSBaptiste Daroussin.Vt enum htmlfont , 69461d06d6bSBaptiste Daroussin.Vt struct tag , 69561d06d6bSBaptiste Daroussin.Vt struct tagq , 69661d06d6bSBaptiste Daroussin.Vt struct htmlpair , 69761d06d6bSBaptiste Daroussin.Vt struct html , 69861d06d6bSBaptiste Daroussin.Fn roff_html_pre , 69961d06d6bSBaptiste Daroussinand many HTML formatting functions. 70061d06d6bSBaptiste Daroussin.Pp 70161d06d6bSBaptiste DaroussinUses 70261d06d6bSBaptiste Daroussin.Vt struct tbl_span 70361d06d6bSBaptiste Daroussinand 70461d06d6bSBaptiste Daroussin.Vt struct eqn_box 70561d06d6bSBaptiste Daroussinfrom 70645a5aec3SBaptiste Daroussin.Qq Pa mandoc.h 70761d06d6bSBaptiste Daroussinand 70861d06d6bSBaptiste Daroussin.Vt struct roff_node 70961d06d6bSBaptiste Daroussinfrom 71045a5aec3SBaptiste Daroussin.Qq Pa roff.h 71161d06d6bSBaptiste Daroussinas opaque types for function prototypes. 71261d06d6bSBaptiste Daroussin.Pp 71361d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 7146d38604fSBaptiste Daroussin.Qq Pa term.h , 7156d38604fSBaptiste Daroussin.Qq Pa tab_term.h , 71661d06d6bSBaptiste Daroussinor 71745a5aec3SBaptiste Daroussin.Qq Pa mansearch.h . 71861d06d6bSBaptiste Daroussin.It Qq Pa main.h 71961d06d6bSBaptiste DaroussinProvides the top level steering functions for all formatters. 72061d06d6bSBaptiste Daroussin.Pp 72161d06d6bSBaptiste DaroussinUses the type 7227295610fSBaptiste Daroussin.Vt struct roff_meta 72361d06d6bSBaptiste Daroussinfrom 72445a5aec3SBaptiste Daroussin.Qq Pa roff.h 72561d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 72661d06d6bSBaptiste Daroussin.It Qq Pa manconf.h 72761d06d6bSBaptiste DaroussinRequires 72861d06d6bSBaptiste Daroussin.In sys/types.h 72961d06d6bSBaptiste Daroussinfor 73061d06d6bSBaptiste Daroussin.Vt size_t . 73161d06d6bSBaptiste Daroussin.Pp 73261d06d6bSBaptiste DaroussinProvides 73361d06d6bSBaptiste Daroussin.Vt struct manconf , 73461d06d6bSBaptiste Daroussin.Vt struct manpaths , 73561d06d6bSBaptiste Daroussin.Vt struct manoutput , 73661d06d6bSBaptiste Daroussinand the functions 73761d06d6bSBaptiste Daroussin.Fn manconf_parse , 73861d06d6bSBaptiste Daroussin.Fn manconf_output , 73961d06d6bSBaptiste Daroussin.Fn manconf_free , 74061d06d6bSBaptiste Daroussinand 74161d06d6bSBaptiste Daroussin.Fn manpath_base . 74261d06d6bSBaptiste Daroussin.It Qq Pa mansearch.h 74361d06d6bSBaptiste DaroussinRequires 74461d06d6bSBaptiste Daroussin.In sys/types.h 74561d06d6bSBaptiste Daroussinfor 74661d06d6bSBaptiste Daroussin.Vt size_t 74761d06d6bSBaptiste Daroussinand 74861d06d6bSBaptiste Daroussin.In stdint.h 74961d06d6bSBaptiste Daroussinfor 75061d06d6bSBaptiste Daroussin.Vt uint64_t . 75161d06d6bSBaptiste Daroussin.Pp 75261d06d6bSBaptiste DaroussinProvides 75361d06d6bSBaptiste Daroussin.Vt enum argmode , 75461d06d6bSBaptiste Daroussin.Vt struct manpage , 75561d06d6bSBaptiste Daroussin.Vt struct mansearch , 75661d06d6bSBaptiste Daroussinand the functions 75761d06d6bSBaptiste Daroussin.Fn mansearch 75861d06d6bSBaptiste Daroussinand 75961d06d6bSBaptiste Daroussin.Fn mansearch_free . 76061d06d6bSBaptiste Daroussin.Pp 76161d06d6bSBaptiste DaroussinUses 76261d06d6bSBaptiste Daroussin.Vt struct manpaths 76361d06d6bSBaptiste Daroussinfrom 76445a5aec3SBaptiste Daroussin.Qq Pa manconf.h 76561d06d6bSBaptiste Daroussinas an opaque type for function prototypes. 76661d06d6bSBaptiste Daroussin.Pp 76761d06d6bSBaptiste DaroussinWhen this header is included, the same file should not include 76845a5aec3SBaptiste Daroussin.Qq Pa out.h , 76945a5aec3SBaptiste Daroussin.Qq Pa term.h , 7706d38604fSBaptiste Daroussin.Qq Pa tab_term.h , 77161d06d6bSBaptiste Daroussinor 77245a5aec3SBaptiste Daroussin.Qq Pa html.h . 77361d06d6bSBaptiste Daroussin.El 774