Annotation of mandoc/mandoc_headers.3, Revision 1.34
1.34 ! schwarze 1: .\" $Id: mandoc_headers.3,v 1.33 2020/03/13 15:32:28 schwarze Exp $
1.31 schwarze 2: .\"
1.34 ! schwarze 3: .\" Copyright (c) 2014-2021 Ingo Schwarze <schwarze@openbsd.org>
1.31 schwarze 4: .\"
5: .\" Permission to use, copy, modify, and distribute this software for any
6: .\" purpose with or without fee is hereby granted, provided that the above
7: .\" copyright notice and this permission notice appear in all copies.
8: .\"
9: .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11: .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13: .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14: .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15: .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16: .\"
1.34 ! schwarze 17: .Dd $Mdocdate: March 13 2020 $
1.1 schwarze 18: .Dt MANDOC_HEADERS 3
19: .Os
20: .Sh NAME
21: .Nm mandoc_headers
22: .Nd ordering of mandoc include files
23: .Sh DESCRIPTION
24: To support a cleaner coding style, the mandoc header files do not
25: contain any include directives and do not guard against multiple
26: inclusion.
27: The application developer has to make sure that the headers are
28: included in a proper order, and that no header is included more
29: than once.
30: .Pp
31: The headers and functions form three major groups:
32: .Sx Parser interface ,
33: .Sx Parser internals ,
34: and
35: .Sx Formatter interface .
36: .Pp
37: Various rules are given below prohibiting the inclusion of certain
38: combinations of headers into the same file.
39: The intention is to keep the following functional components
40: separate from each other:
41: .Pp
42: .Bl -dash -offset indent -compact
43: .It
1.20 schwarze 44: .Xr roff 7
45: parser
46: .It
1.1 schwarze 47: .Xr mdoc 7
48: parser
49: .It
50: .Xr man 7
51: parser
52: .It
53: .Xr tbl 7
54: parser
55: .It
56: .Xr eqn 7
57: parser
58: .It
59: terminal formatters
60: .It
61: HTML formatters
62: .It
63: search tools
1.20 schwarze 64: .It
65: main programs
1.1 schwarze 66: .El
67: .Pp
1.2 schwarze 68: Note that mere usage of an opaque struct type does
1.1 schwarze 69: .Em not
70: require inclusion of the header where that type is defined.
71: .Ss Parser interface
72: Each of the following headers can be included without including
73: any other mandoc header.
74: These headers should be included before any other mandoc headers.
75: .Bl -tag -width Ds
76: .It Qq Pa mandoc_aux.h
1.20 schwarze 77: Memory allocation utility functions; can be used everywhere.
78: .Pp
1.1 schwarze 79: Requires
80: .In sys/types.h
81: for
82: .Vt size_t .
1.11 schwarze 83: .Pp
1.20 schwarze 84: Provides the functions documented in
1.1 schwarze 85: .Xr mandoc_malloc 3 .
1.8 schwarze 86: .It Qq Pa mandoc_ohash.h
1.20 schwarze 87: Hashing utility functions; can be used everywhere.
88: .Pp
1.11 schwarze 89: Requires
90: .In stddef.h
91: for
92: .Vt ptrdiff_t
93: and
94: .In stdint.h
95: for
96: .Vt uint32_t .
97: .Pp
1.8 schwarze 98: Includes
99: .In ohash.h
100: and provides
101: .Fn mandoc_ohash_init .
1.1 schwarze 102: .It Qq Pa mandoc.h
1.26 schwarze 103: Error handling, escape sequence, and character utilities;
1.20 schwarze 104: can be used everywhere.
105: .Pp
1.1 schwarze 106: Requires
107: .In sys/types.h
108: for
1.27 schwarze 109: .Vt size_t
110: and
111: .In stdio.h
112: for
113: .Vt FILE .
1.1 schwarze 114: .Pp
115: Provides
116: .Vt enum mandoc_esc ,
117: .Vt enum mandocerr ,
118: .Vt enum mandoclevel ,
119: the function
120: .Xr mandoc_escape 3 ,
1.27 schwarze 121: the functions described in
122: .Xr mchars_alloc 3 ,
123: and the
124: .Fn mandoc_msg*
125: functions.
1.26 schwarze 126: .It Qq Pa roff.h
127: Common data types for all syntax trees and related functions;
128: can be used everywhere.
129: .Pp
130: Provides
131: .Vt enum mandoc_os ,
132: .Vt enum mdoc_endbody ,
133: .Vt enum roff_macroset ,
134: .Vt enum roff_sec ,
135: .Vt enum roff_tok ,
136: .Vt enum roff_type ,
137: .Vt struct roff_man ,
138: .Vt struct roff_meta ,
139: .Vt struct roff_node ,
140: the constant array
141: .Va roff_name
1.30 schwarze 142: and the function
143: .Fn deroff .
1.1 schwarze 144: .Pp
1.26 schwarze 145: Uses pointers to the types
146: .Vt struct ohash
1.1 schwarze 147: from
1.31 schwarze 148: .Qq Pa mandoc_ohash.h ,
1.26 schwarze 149: .Vt struct mdoc_arg
150: and
151: .Vt union mdoc_data
1.1 schwarze 152: from
1.31 schwarze 153: .Qq Pa mdoc.h ,
1.30 schwarze 154: .Vt struct tbl_span
155: from
1.31 schwarze 156: .Qq Pa tbl.h ,
1.30 schwarze 157: and
158: .Vt struct eqn_box
159: from
1.31 schwarze 160: .Qq Pa eqn.h
1.26 schwarze 161: as opaque struct members.
1.20 schwarze 162: .It Qq Pa tbl.h
163: Data structures for the
164: .Xr tbl 7
165: parse tree; can be used everywhere.
166: .Pp
167: Requires
168: .In sys/types.h
169: for
1.34 ! schwarze 170: .Vt size_t
! 171: and
! 172: .Qq Pa mandoc.h
! 173: for
! 174: .Vt enum mandoc_esc .
1.20 schwarze 175: .Pp
176: Provides
177: .Vt enum tbl_cellt ,
178: .Vt enum tbl_datt ,
179: .Vt enum tbl_spant ,
180: .Vt struct tbl_opts ,
181: .Vt struct tbl_cell ,
182: .Vt struct tbl_row ,
183: .Vt struct tbl_dat ,
184: and
185: .Vt struct tbl_span .
1.23 schwarze 186: .It Qq Pa eqn.h
187: Data structures for the
188: .Xr eqn 7
189: parse tree; can be used everywhere.
190: .Pp
191: Requires
192: .In sys/types.h
193: for
194: .Vt size_t .
195: .Pp
196: Provides
197: .Vt enum eqn_boxt ,
198: .Vt enum eqn_fontt ,
199: .Vt enum eqn_post ,
200: and
201: .Vt struct eqn_box .
1.26 schwarze 202: .It Qq Pa mandoc_parse.h
203: Top level parser interface, for use in the main program
204: and in the main parser, but not in formatters.
205: .Pp
206: Requires
1.31 schwarze 207: .Qq Pa mandoc.h
1.26 schwarze 208: for
1.30 schwarze 209: .Vt enum mandocerr
1.26 schwarze 210: and
1.30 schwarze 211: .Vt enum mandoclevel
1.26 schwarze 212: and
1.31 schwarze 213: .Qq Pa roff.h
1.26 schwarze 214: for
215: .Vt enum mandoc_os .
216: .Pp
1.28 schwarze 217: Uses the opaque type
1.26 schwarze 218: .Vt struct mparse
219: from
220: .Pa read.c
221: for function prototypes.
222: Uses
1.30 schwarze 223: .Vt struct roff_meta
1.26 schwarze 224: from
1.31 schwarze 225: .Qq Pa roff.h
1.26 schwarze 226: as an opaque type for function prototypes.
1.15 schwarze 227: .It Qq Pa mandoc_xr.h
1.20 schwarze 228: Cross reference validation; intended for use in the main program
229: and in parsers, but not in formatters.
230: .Pp
1.15 schwarze 231: Provides
232: .Vt struct mandoc_xr
233: and the functions
234: .Fn mandoc_xr_reset ,
235: .Fn mandoc_xr_add ,
236: .Fn mandoc_xr_get ,
237: and
238: .Fn mandoc_xr_free .
1.33 schwarze 239: .It Qq Pa tag.h
240: Internal interfaces to tag syntax tree nodes,
241: for use by validation modules only.
242: .Pp
243: Requires
244: .In limits.h
245: for
246: .Dv INT_MAX .
247: .Pp
248: Provides the functions
249: .Fn tag_alloc ,
250: .Fn tag_put ,
251: .Fn tag_check ,
252: and
253: .Fn tag_free
254: and some
255: .Dv TAG_*
256: constants.
257: .Pp
258: Uses the type
259: .Vt struct roff_node
260: from
261: .Qq Pa roff.h
262: as an opaque type for function prototypes.
1.4 schwarze 263: .El
264: .Pp
265: The following two require
266: .Qq Pa roff.h
267: but no other mandoc headers.
268: Afterwards, any other mandoc headers can be included as needed.
269: .Bl -tag -width Ds
1.1 schwarze 270: .It Qq Pa mdoc.h
271: Requires
272: .In sys/types.h
273: for
1.8 schwarze 274: .Vt size_t .
1.1 schwarze 275: .Pp
276: Provides
277: .Vt enum mdocargt ,
1.8 schwarze 278: .Vt enum mdoc_auth ,
1.1 schwarze 279: .Vt enum mdoc_disp ,
1.8 schwarze 280: .Vt enum mdoc_font ,
1.1 schwarze 281: .Vt enum mdoc_list ,
282: .Vt struct mdoc_argv ,
283: .Vt struct mdoc_arg ,
1.8 schwarze 284: .Vt struct mdoc_an ,
1.1 schwarze 285: .Vt struct mdoc_bd ,
1.8 schwarze 286: .Vt struct mdoc_bf ,
1.1 schwarze 287: .Vt struct mdoc_bl ,
288: .Vt struct mdoc_rs ,
1.8 schwarze 289: .Vt union mdoc_data ,
1.1 schwarze 290: and the functions
291: .Fn mdoc_*
292: described in
293: .Xr mandoc 3 .
294: .Pp
1.30 schwarze 295: Uses the types
296: .Vt struct roff_node
297: from
1.31 schwarze 298: .Qq Pa roff.h
1.30 schwarze 299: and
1.8 schwarze 300: .Vt struct roff_man
1.1 schwarze 301: from
1.31 schwarze 302: .Qq Pa roff_int.h
1.30 schwarze 303: as opaque types for function prototypes.
1.1 schwarze 304: .Pp
305: When this header is included, the same file should not include
1.22 schwarze 306: internals of different parsers.
1.1 schwarze 307: .It Qq Pa man.h
1.6 schwarze 308: Provides the functions
1.1 schwarze 309: .Fn man_*
310: described in
311: .Xr mandoc 3 .
312: .Pp
313: Uses the type
1.8 schwarze 314: .Vt struct roff_man
1.1 schwarze 315: from
1.31 schwarze 316: .Qq Pa roff.h
1.1 schwarze 317: as an opaque type for function prototypes.
318: .Pp
319: When this header is included, the same file should not include
1.22 schwarze 320: internals of different parsers.
1.1 schwarze 321: .El
322: .Ss Parser internals
1.21 schwarze 323: Most of the following headers require inclusion of a parser interface header
1.9 schwarze 324: before they can be included.
325: All parser interface headers should precede all parser internal headers.
326: When any parser internal headers are included, the same file should
327: not include any formatter headers.
1.1 schwarze 328: .Bl -tag -width Ds
329: .It Qq Pa libmandoc.h
330: Requires
331: .In sys/types.h
332: for
1.8 schwarze 333: .Vt size_t
334: and
1.6 schwarze 335: .Qq Pa mandoc.h
336: for
1.8 schwarze 337: .Vt enum mandocerr .
1.1 schwarze 338: .Pp
339: Provides
340: .Vt struct buf ,
341: utility functions needed by multiple parsers,
342: and the top-level functions to call the parsers.
343: .Pp
1.28 schwarze 344: Uses the opaque type
1.1 schwarze 345: .Vt struct roff
346: from
347: .Pa roff.c
348: for function prototypes.
1.18 schwarze 349: Uses the type
1.8 schwarze 350: .Vt struct roff_man
351: from
1.31 schwarze 352: .Qq Pa roff.h
1.18 schwarze 353: as an opaque type for function prototypes.
1.8 schwarze 354: .It Qq Pa roff_int.h
1.24 schwarze 355: Parser internals shared by multiple parsers.
356: Can be used in all parsers, but not in main programs or formatters.
357: .Pp
1.8 schwarze 358: Requires
359: .Qq Pa roff.h
360: for
1.24 schwarze 361: .Vt enum roff_type
362: and
363: .Vt enum roff_tok .
1.8 schwarze 364: .Pp
1.30 schwarze 365: Provides
366: .Vt enum roff_next ,
367: .Vt struct roff_man ,
368: functions named
1.8 schwarze 369: .Fn roff_*
1.24 schwarze 370: to handle roff nodes,
371: .Fn roffhash_alloc ,
372: .Fn roffhash_find ,
1.30 schwarze 373: .Fn roffhash_free ,
1.24 schwarze 374: and
1.30 schwarze 375: .Fn roff_validate ,
1.24 schwarze 376: and the two special functions
1.8 schwarze 377: .Fn man_breakscope
378: and
379: .Fn mdoc_argv_free
380: because the latter two are needed by
1.31 schwarze 381: .Pa roff.c .
1.8 schwarze 382: .Pp
383: Uses the types
1.30 schwarze 384: .Vt struct ohash
385: from
1.31 schwarze 386: .Qq Pa mandoc_ohash.h ,
1.30 schwarze 387: .Vt struct roff_node
1.8 schwarze 388: and
1.30 schwarze 389: .Vt struct roff_meta
390: from
1.31 schwarze 391: .Qq Pa roff.h ,
1.30 schwarze 392: .Vt struct roff
1.1 schwarze 393: from
1.30 schwarze 394: .Pa roff.c ,
1.1 schwarze 395: and
1.8 schwarze 396: .Vt struct mdoc_arg
1.1 schwarze 397: from
1.31 schwarze 398: .Qq Pa mdoc.h
1.1 schwarze 399: as opaque types for function prototypes.
400: .It Qq Pa libmdoc.h
401: Requires
1.10 schwarze 402: .Qq Pa roff.h
403: for
404: .Vt enum roff_tok
405: and
1.25 schwarze 406: .Vt enum roff_sec .
1.1 schwarze 407: .Pp
408: Provides
409: .Vt enum margserr ,
410: .Vt enum mdelim ,
411: .Vt struct mdoc_macro ,
412: and many functions internal to the
413: .Xr mdoc 7
414: parser.
415: .Pp
1.8 schwarze 416: Uses the types
1.30 schwarze 417: .Vt struct roff_node
418: from
1.31 schwarze 419: .Qq Pa roff.h ,
1.8 schwarze 420: .Vt struct roff_man
1.1 schwarze 421: from
1.31 schwarze 422: .Qq Pa roff_int.h ,
1.25 schwarze 423: and
424: .Vt struct mdoc_arg
425: from
1.31 schwarze 426: .Qq Pa mdoc.h
1.8 schwarze 427: as opaque types for function prototypes.
1.1 schwarze 428: .Pp
429: When this header is included, the same file should not include
1.22 schwarze 430: interfaces of different parsers.
1.1 schwarze 431: .It Qq Pa libman.h
1.10 schwarze 432: Requires
433: .Qq Pa roff.h
434: for
435: .Vt enum roff_tok .
1.11 schwarze 436: .Pp
1.1 schwarze 437: Provides
1.8 schwarze 438: .Vt struct man_macro
439: and some functions internal to the
1.1 schwarze 440: .Xr man 7
441: parser.
442: .Pp
1.8 schwarze 443: Uses the types
444: .Vt struct roff_node
1.1 schwarze 445: from
1.31 schwarze 446: .Qq Pa roff.h
1.30 schwarze 447: and
448: .Vt struct roff_man
449: from
1.31 schwarze 450: .Qq Pa roff_int.h
1.8 schwarze 451: as opaque types for function prototypes.
1.1 schwarze 452: .Pp
453: When this header is included, the same file should not include
1.22 schwarze 454: interfaces of different parsers.
455: .It Qq Pa eqn_parse.h
456: External interface of the
457: .Xr eqn 7
458: parser, for use in the
459: .Xr roff 7
460: and
461: .Xr eqn 7
462: parsers only.
463: .Pp
1.1 schwarze 464: Requires
465: .In sys/types.h
466: for
1.22 schwarze 467: .Vt size_t .
1.1 schwarze 468: .Pp
469: Provides
1.22 schwarze 470: .Vt struct eqn_node
471: and the functions
472: .Fn eqn_alloc ,
1.23 schwarze 473: .Fn eqn_box_new ,
1.22 schwarze 474: .Fn eqn_box_free ,
475: .Fn eqn_free ,
476: .Fn eqn_parse ,
477: .Fn eqn_read ,
478: and
479: .Fn eqn_reset .
1.1 schwarze 480: .Pp
1.22 schwarze 481: Uses the type
482: .Vt struct eqn_box
483: from
1.31 schwarze 484: .Qq Pa mandoc.h
1.22 schwarze 485: as an opaque type for function prototypes.
486: Uses the types
487: .Vt struct roff_node
488: from
1.31 schwarze 489: .Qq Pa roff.h
1.22 schwarze 490: and
491: .Vt struct eqn_def
492: from
493: .Pa eqn.c
494: as opaque struct members.
1.1 schwarze 495: .Pp
496: When this header is included, the same file should not include
1.22 schwarze 497: internals of different parsers.
1.21 schwarze 498: .It Qq Pa tbl_parse.h
499: External interface of the
500: .Xr tbl 7
501: parser, for use in the
502: .Xr roff 7
503: and
504: .Xr tbl 7
505: parsers only.
506: .Pp
507: Provides the functions documented in
508: .Xr tbl 3 .
509: .Pp
510: Uses the types
511: .Vt struct tbl_span
512: from
1.31 schwarze 513: .Qq Pa tbl.h
1.21 schwarze 514: and
515: .Vt struct tbl_node
516: from
1.31 schwarze 517: .Qq Pa tbl_int.h
1.21 schwarze 518: as opaque types for function prototypes.
519: .Pp
520: When this header is included, the same file should not include
1.22 schwarze 521: internals of different parsers.
1.21 schwarze 522: .It Qq Pa tbl_int.h
523: Internal interfaces of the
524: .Xr tbl 7
525: parser, for use inside the
526: .Xr tbl 7
527: parser only.
528: .Pp
529: Requires
530: .Qq Pa tbl.h
531: for
532: .Vt struct tbl_opts .
533: .Pp
534: Provides
535: .Vt enum tbl_part ,
536: .Vt struct tbl_node ,
537: and the functions
538: .Fn tbl_option ,
539: .Fn tbl_layout ,
540: .Fn tbl_data ,
541: .Fn tbl_cdata ,
542: and
543: .Fn tbl_reset .
544: .Pp
545: When this header is included, the same file should not include
546: interfaces of different parsers.
1.1 schwarze 547: .El
548: .Ss Formatter interface
549: These headers should be included after any parser interface headers.
550: No parser internal headers should be included by the same file.
551: .Bl -tag -width Ds
552: .It Qq Pa out.h
553: Requires
554: .In sys/types.h
555: for
556: .Vt size_t .
557: .Pp
558: Provides
559: .Vt enum roffscale ,
560: .Vt struct roffcol ,
561: .Vt struct roffsu ,
562: .Vt struct rofftbl ,
563: .Fn a2roffsu ,
564: and
565: .Fn tblcalc .
566: .Pp
567: Uses
568: .Vt struct tbl_span
569: from
1.31 schwarze 570: .Qq Pa mandoc.h
1.1 schwarze 571: as an opaque type for function prototypes.
572: .Pp
573: When this header is included, the same file should not include
1.31 schwarze 574: .Qq Pa mansearch.h .
1.1 schwarze 575: .It Qq Pa term.h
576: Requires
577: .In sys/types.h
578: for
579: .Vt size_t
580: and
581: .Qq Pa out.h
582: for
583: .Vt struct roffsu
584: and
585: .Vt struct rofftbl .
586: .Pp
587: Provides
588: .Vt enum termenc ,
589: .Vt enum termfont ,
590: .Vt enum termtype ,
591: .Vt struct termp_tbl ,
592: .Vt struct termp ,
1.12 schwarze 593: .Fn roff_term_pre ,
1.1 schwarze 594: and many terminal formatting functions.
595: .Pp
1.7 schwarze 596: Uses the opaque type
1.1 schwarze 597: .Vt struct termp_ps
598: from
599: .Pa term_ps.c .
600: Uses
601: .Vt struct tbl_span
602: and
1.17 schwarze 603: .Vt struct eqn_box
1.1 schwarze 604: from
1.31 schwarze 605: .Qq Pa mandoc.h
1.6 schwarze 606: and
607: .Vt struct roff_meta
1.12 schwarze 608: and
609: .Vt struct roff_node
1.6 schwarze 610: from
1.31 schwarze 611: .Qq Pa roff.h
1.1 schwarze 612: as opaque types for function prototypes.
613: .Pp
614: When this header is included, the same file should not include
1.31 schwarze 615: .Qq Pa html.h
1.1 schwarze 616: or
1.31 schwarze 617: .Qq Pa mansearch.h .
1.33 schwarze 618: .It Qq Pa tag_term.h
619: Requires
620: .In sys/types.h
621: for
622: .Vt size_t
623: and
624: .In stdio.h
625: for
626: .Vt FILE .
627: .Pp
628: Provides an interface to generate
629: .Xr ctags 1
630: files for the
631: .Ic :t
632: functionality mentioned in
633: .Xr man 1 .
634: .Pp
635: Uses the type
636: .Vt struct roff_node
637: from
638: .Qq Pa roff.h
639: as an opaque type for function prototypes.
640: .Pp
641: When this header is included, the same file should not include
642: .Qq Pa html.h
643: or
644: .Qq Pa mansearch.h .
1.1 schwarze 645: .It Qq Pa html.h
646: Requires
647: .In sys/types.h
648: for
1.29 schwarze 649: .Vt size_t ,
1.31 schwarze 650: .Qq Pa mandoc.h
1.29 schwarze 651: for
652: .Vt enum mandoc_esc ,
1.31 schwarze 653: .Qq Pa roff.h
654: for
655: .Vt enum roff_tok ,
1.1 schwarze 656: and
657: .Qq Pa out.h
658: for
659: .Vt struct roffsu
660: and
661: .Vt struct rofftbl .
662: .Pp
663: Provides
664: .Vt enum htmltag ,
665: .Vt enum htmlattr ,
666: .Vt enum htmlfont ,
667: .Vt struct tag ,
668: .Vt struct tagq ,
669: .Vt struct htmlpair ,
670: .Vt struct html ,
1.12 schwarze 671: .Fn roff_html_pre ,
1.1 schwarze 672: and many HTML formatting functions.
1.12 schwarze 673: .Pp
674: Uses
675: .Vt struct tbl_span
676: and
1.17 schwarze 677: .Vt struct eqn_box
1.12 schwarze 678: from
1.31 schwarze 679: .Qq Pa mandoc.h
1.12 schwarze 680: and
681: .Vt struct roff_node
682: from
1.31 schwarze 683: .Qq Pa roff.h
1.12 schwarze 684: as opaque types for function prototypes.
1.1 schwarze 685: .Pp
686: When this header is included, the same file should not include
1.33 schwarze 687: .Qq Pa term.h ,
688: .Qq Pa tab_term.h ,
1.1 schwarze 689: or
1.31 schwarze 690: .Qq Pa mansearch.h .
1.1 schwarze 691: .It Qq Pa main.h
692: Provides the top level steering functions for all formatters.
693: .Pp
1.8 schwarze 694: Uses the type
1.30 schwarze 695: .Vt struct roff_meta
1.1 schwarze 696: from
1.31 schwarze 697: .Qq Pa roff.h
1.8 schwarze 698: as an opaque type for function prototypes.
1.3 schwarze 699: .It Qq Pa manconf.h
1.1 schwarze 700: Requires
701: .In sys/types.h
702: for
703: .Vt size_t .
704: .Pp
705: Provides
1.3 schwarze 706: .Vt struct manconf ,
707: .Vt struct manpaths ,
708: .Vt struct manoutput ,
1.1 schwarze 709: and the functions
1.3 schwarze 710: .Fn manconf_parse ,
711: .Fn manconf_output ,
1.15 schwarze 712: .Fn manconf_free ,
1.1 schwarze 713: and
1.15 schwarze 714: .Fn manpath_base .
1.1 schwarze 715: .It Qq Pa mansearch.h
716: Requires
717: .In sys/types.h
718: for
719: .Vt size_t
720: and
721: .In stdint.h
722: for
723: .Vt uint64_t .
724: .Pp
725: Provides
726: .Vt enum argmode ,
727: .Vt struct manpage ,
728: .Vt struct mansearch ,
729: and the functions
1.9 schwarze 730: .Fn mansearch
1.1 schwarze 731: and
732: .Fn mansearch_free .
733: .Pp
734: Uses
735: .Vt struct manpaths
736: from
1.31 schwarze 737: .Qq Pa manconf.h
1.1 schwarze 738: as an opaque type for function prototypes.
739: .Pp
740: When this header is included, the same file should not include
1.31 schwarze 741: .Qq Pa out.h ,
742: .Qq Pa term.h ,
1.33 schwarze 743: .Qq Pa tab_term.h ,
1.1 schwarze 744: or
1.31 schwarze 745: .Qq Pa html.h .
1.1 schwarze 746: .El
CVSweb