version 1.30, 2018/12/30 00:49:55 |
version 1.35, 2022/04/14 16:43:44 |
|
|
|
.\" $Id$ |
|
.\" |
|
.\" Copyright (c) 2014-2022 Ingo Schwarze <schwarze@openbsd.org> |
|
.\" |
|
.\" Permission to use, copy, modify, and distribute this software for any |
|
.\" purpose with or without fee is hereby granted, provided that the above |
|
.\" copyright notice and this permission notice appear in all copies. |
|
.\" |
|
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
|
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
|
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
|
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
|
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
.\" |
.Dd $Mdocdate$ |
.Dd $Mdocdate$ |
.Dt MANDOC_HEADERS 3 |
.Dt MANDOC_HEADERS 3 |
.Os |
.Os |
Line 9 To support a cleaner coding style, the mandoc header f |
|
Line 25 To support a cleaner coding style, the mandoc header f |
|
contain any include directives and do not guard against multiple |
contain any include directives and do not guard against multiple |
inclusion. |
inclusion. |
The application developer has to make sure that the headers are |
The application developer has to make sure that the headers are |
included in a proper order, and that no header is included more |
included in the order shown in this manual page, |
than once. |
and that no header is included more than once. |
.Pp |
.Pp |
The headers and functions form three major groups: |
The headers and functions form three major groups: |
.Sx Parser interface , |
.Sx Parser interface , |
|
|
.Pp |
.Pp |
Provides the functions documented in |
Provides the functions documented in |
.Xr mandoc_malloc 3 . |
.Xr mandoc_malloc 3 . |
|
.Pp |
|
When this header is included, the same file must not include |
|
.Qq Pa mandoc_dbg.h |
|
because |
|
.Qq Pa mandoc_aux.h |
|
automatically includes |
|
.Qq Pa mandoc_dbg.h |
|
if and only if the preprocessor symbol |
|
.Dv DEBUG_MEMORY |
|
is defined. |
|
.It Qq Pa mandoc_dbg.h |
|
Debugging utility functions and |
|
debugging wrappers around memory allocation functions. |
|
.Pp |
|
Requires |
|
.In sys/types.h |
|
for |
|
.Vt size_t . |
|
.Pp |
|
Provides the functions documented in |
|
.Xr mandoc_dbg_init 3 . |
|
.Pp |
|
This header must not be included unless the preprocessor symbol |
|
.Dv DEBUG_MEMORY |
|
is defined. |
|
When this header is included, the same file must not include |
|
.Qq Pa mandoc_aux.h . |
.It Qq Pa mandoc_ohash.h |
.It Qq Pa mandoc_ohash.h |
Hashing utility functions; can be used everywhere. |
Hashing utility functions; can be used everywhere. |
.Pp |
.Pp |
Line 129 and the function |
|
Line 172 and the function |
|
Uses pointers to the types |
Uses pointers to the types |
.Vt struct ohash |
.Vt struct ohash |
from |
from |
.Pa mandoc_ohash.h , |
.Qq Pa mandoc_ohash.h , |
.Vt struct mdoc_arg |
.Vt struct mdoc_arg |
and |
and |
.Vt union mdoc_data |
.Vt union mdoc_data |
from |
from |
.Pa mdoc.h , |
.Qq Pa mdoc.h , |
.Vt struct tbl_span |
.Vt struct tbl_span |
from |
from |
.Pa tbl.h , |
.Qq Pa tbl.h , |
and |
and |
.Vt struct eqn_box |
.Vt struct eqn_box |
from |
from |
.Pa eqn.h |
.Qq Pa eqn.h |
as opaque struct members. |
as opaque struct members. |
.It Qq Pa tbl.h |
.It Qq Pa tbl.h |
Data structures for the |
Data structures for the |
Line 151 parse tree; can be used everywhere. |
|
Line 194 parse tree; can be used everywhere. |
|
Requires |
Requires |
.In sys/types.h |
.In sys/types.h |
for |
for |
.Vt size_t . |
.Vt size_t |
|
and |
|
.Qq Pa mandoc.h |
|
for |
|
.Vt enum mandoc_esc . |
.Pp |
.Pp |
Provides |
Provides |
.Vt enum tbl_cellt , |
.Vt enum tbl_cellt , |
Line 184 Top level parser interface, for use in the main progra |
|
Line 231 Top level parser interface, for use in the main progra |
|
and in the main parser, but not in formatters. |
and in the main parser, but not in formatters. |
.Pp |
.Pp |
Requires |
Requires |
.Pa mandoc.h |
.Qq Pa mandoc.h |
for |
for |
.Vt enum mandocerr |
.Vt enum mandocerr |
and |
and |
.Vt enum mandoclevel |
.Vt enum mandoclevel |
and |
and |
.Pa roff.h |
.Qq Pa roff.h |
for |
for |
.Vt enum mandoc_os . |
.Vt enum mandoc_os . |
.Pp |
.Pp |
Line 202 for function prototypes. |
|
Line 249 for function prototypes. |
|
Uses |
Uses |
.Vt struct roff_meta |
.Vt struct roff_meta |
from |
from |
.Pa roff.h |
.Qq Pa roff.h |
as an opaque type for function prototypes. |
as an opaque type for function prototypes. |
.It Qq Pa mandoc_xr.h |
.It Qq Pa mandoc_xr.h |
Cross reference validation; intended for use in the main program |
Cross reference validation; intended for use in the main program |
Line 216 and the functions |
|
Line 263 and the functions |
|
.Fn mandoc_xr_get , |
.Fn mandoc_xr_get , |
and |
and |
.Fn mandoc_xr_free . |
.Fn mandoc_xr_free . |
|
.It Qq Pa tag.h |
|
Internal interfaces to tag syntax tree nodes, |
|
for use by validation modules only. |
|
.Pp |
|
Requires |
|
.In limits.h |
|
for |
|
.Dv INT_MAX . |
|
.Pp |
|
Provides the functions |
|
.Fn tag_alloc , |
|
.Fn tag_put , |
|
.Fn tag_check , |
|
and |
|
.Fn tag_free |
|
and some |
|
.Dv TAG_* |
|
constants. |
|
.Pp |
|
Uses the type |
|
.Vt struct roff_node |
|
from |
|
.Qq Pa roff.h |
|
as an opaque type for function prototypes. |
.El |
.El |
.Pp |
.Pp |
The following two require |
The following two require |
|
|
Uses the types |
Uses the types |
.Vt struct roff_node |
.Vt struct roff_node |
from |
from |
.Pa roff.h |
.Qq Pa roff.h |
and |
and |
.Vt struct roff_man |
.Vt struct roff_man |
from |
from |
.Pa roff_int.h |
.Qq Pa roff_int.h |
as opaque types for function prototypes. |
as opaque types for function prototypes. |
.Pp |
.Pp |
When this header is included, the same file should not include |
When this header is included, the same file should not include |
|
|
Uses the type |
Uses the type |
.Vt struct roff_man |
.Vt struct roff_man |
from |
from |
.Pa roff.h |
.Qq Pa roff.h |
as an opaque type for function prototypes. |
as an opaque type for function prototypes. |
.Pp |
.Pp |
When this header is included, the same file should not include |
When this header is included, the same file should not include |
Line 305 for function prototypes. |
|
Line 376 for function prototypes. |
|
Uses the type |
Uses the type |
.Vt struct roff_man |
.Vt struct roff_man |
from |
from |
.Pa roff.h |
.Qq Pa roff.h |
as an opaque type for function prototypes. |
as an opaque type for function prototypes. |
.It Qq Pa roff_int.h |
.It Qq Pa roff_int.h |
Parser internals shared by multiple parsers. |
Parser internals shared by multiple parsers. |
Line 334 and the two special functions |
|
Line 405 and the two special functions |
|
and |
and |
.Fn mdoc_argv_free |
.Fn mdoc_argv_free |
because the latter two are needed by |
because the latter two are needed by |
.Qq Pa roff.c . |
.Pa roff.c . |
.Pp |
.Pp |
Uses the types |
Uses the types |
.Vt struct ohash |
.Vt struct ohash |
from |
from |
.Pa mandoc_ohash.h , |
.Qq Pa mandoc_ohash.h , |
.Vt struct roff_node |
.Vt struct roff_node |
and |
and |
.Vt struct roff_meta |
.Vt struct roff_meta |
from |
from |
.Pa roff.h , |
.Qq Pa roff.h , |
.Vt struct roff |
.Vt struct roff |
from |
from |
.Pa roff.c , |
.Pa roff.c , |
and |
and |
.Vt struct mdoc_arg |
.Vt struct mdoc_arg |
from |
from |
.Pa mdoc.h |
.Qq Pa mdoc.h |
as opaque types for function prototypes. |
as opaque types for function prototypes. |
.It Qq Pa libmdoc.h |
.It Qq Pa libmdoc.h |
Requires |
Requires |
|
|
Uses the types |
Uses the types |
.Vt struct roff_node |
.Vt struct roff_node |
from |
from |
.Pa roff.h , |
.Qq Pa roff.h , |
.Vt struct roff_man |
.Vt struct roff_man |
from |
from |
.Pa roff_int.h , |
.Qq Pa roff_int.h , |
and |
and |
.Vt struct mdoc_arg |
.Vt struct mdoc_arg |
from |
from |
.Pa mdoc.h |
.Qq Pa mdoc.h |
as opaque types for function prototypes. |
as opaque types for function prototypes. |
.Pp |
.Pp |
When this header is included, the same file should not include |
When this header is included, the same file should not include |
|
|
Uses the types |
Uses the types |
.Vt struct roff_node |
.Vt struct roff_node |
from |
from |
.Pa roff.h |
.Qq Pa roff.h |
and |
and |
.Vt struct roff_man |
.Vt struct roff_man |
from |
from |
.Pa roff_int.h |
.Qq Pa roff_int.h |
as opaque types for function prototypes. |
as opaque types for function prototypes. |
.Pp |
.Pp |
When this header is included, the same file should not include |
When this header is included, the same file should not include |
|
|
Uses the type |
Uses the type |
.Vt struct eqn_box |
.Vt struct eqn_box |
from |
from |
.Pa mandoc.h |
.Qq Pa mandoc.h |
as an opaque type for function prototypes. |
as an opaque type for function prototypes. |
Uses the types |
Uses the types |
.Vt struct roff_node |
.Vt struct roff_node |
from |
from |
.Pa roff.h |
.Qq Pa roff.h |
and |
and |
.Vt struct eqn_def |
.Vt struct eqn_def |
from |
from |
Line 466 Provides the functions documented in |
|
Line 537 Provides the functions documented in |
|
Uses the types |
Uses the types |
.Vt struct tbl_span |
.Vt struct tbl_span |
from |
from |
.Pa tbl.h |
.Qq Pa tbl.h |
and |
and |
.Vt struct tbl_node |
.Vt struct tbl_node |
from |
from |
.Pa tbl_int.h |
.Qq Pa tbl_int.h |
as opaque types for function prototypes. |
as opaque types for function prototypes. |
.Pp |
.Pp |
When this header is included, the same file should not include |
When this header is included, the same file should not include |
|
|
Uses |
Uses |
.Vt struct tbl_span |
.Vt struct tbl_span |
from |
from |
.Pa mandoc.h |
.Qq Pa mandoc.h |
as an opaque type for function prototypes. |
as an opaque type for function prototypes. |
.Pp |
.Pp |
When this header is included, the same file should not include |
When this header is included, the same file should not include |
.Pa mansearch.h . |
.Qq Pa mansearch.h . |
.It Qq Pa term.h |
.It Qq Pa term.h |
Requires |
Requires |
.In sys/types.h |
.In sys/types.h |
|
|
and |
and |
.Vt struct eqn_box |
.Vt struct eqn_box |
from |
from |
.Pa mandoc.h |
.Qq Pa mandoc.h |
and |
and |
.Vt struct roff_meta |
.Vt struct roff_meta |
and |
and |
.Vt struct roff_node |
.Vt struct roff_node |
from |
from |
.Pa roff.h |
.Qq Pa roff.h |
as opaque types for function prototypes. |
as opaque types for function prototypes. |
.Pp |
.Pp |
When this header is included, the same file should not include |
When this header is included, the same file should not include |
.Pa html.h |
.Qq Pa html.h |
or |
or |
.Pa mansearch.h . |
.Qq Pa mansearch.h . |
|
.It Qq Pa tag_term.h |
|
Requires |
|
.In sys/types.h |
|
for |
|
.Vt size_t |
|
and |
|
.In stdio.h |
|
for |
|
.Vt FILE . |
|
.Pp |
|
Provides an interface to generate |
|
.Xr ctags 1 |
|
files for the |
|
.Ic :t |
|
functionality mentioned in |
|
.Xr man 1 . |
|
.Pp |
|
Uses the type |
|
.Vt struct roff_node |
|
from |
|
.Qq Pa roff.h |
|
as an opaque type for function prototypes. |
|
.Pp |
|
When this header is included, the same file should not include |
|
.Qq Pa html.h |
|
or |
|
.Qq Pa mansearch.h . |
.It Qq Pa html.h |
.It Qq Pa html.h |
Requires |
Requires |
.In sys/types.h |
.In sys/types.h |
for |
for |
.Vt size_t , |
.Vt size_t , |
.Pa mandoc.h |
.Qq Pa mandoc.h |
for |
for |
.Vt enum mandoc_esc , |
.Vt enum mandoc_esc , |
|
.Qq Pa roff.h |
|
for |
|
.Vt enum roff_tok , |
and |
and |
.Qq Pa out.h |
.Qq Pa out.h |
for |
for |
|
|
and |
and |
.Vt struct eqn_box |
.Vt struct eqn_box |
from |
from |
.Pa mandoc.h |
.Qq Pa mandoc.h |
and |
and |
.Vt struct roff_node |
.Vt struct roff_node |
from |
from |
.Pa roff.h |
.Qq Pa roff.h |
as opaque types for function prototypes. |
as opaque types for function prototypes. |
.Pp |
.Pp |
When this header is included, the same file should not include |
When this header is included, the same file should not include |
.Pa term.h |
.Qq Pa term.h , |
|
.Qq Pa tab_term.h , |
or |
or |
.Pa mansearch.h . |
.Qq Pa mansearch.h . |
.It Qq Pa tag.h |
|
Requires |
|
.In sys/types.h |
|
for |
|
.Vt size_t . |
|
.Pp |
|
Provides an interface to generate |
|
.Xr ctags 1 |
|
files for the |
|
.Ic :t |
|
functionality mentioned in |
|
.Xr man 1 . |
|
.It Qq Pa main.h |
.It Qq Pa main.h |
Provides the top level steering functions for all formatters. |
Provides the top level steering functions for all formatters. |
.Pp |
.Pp |
Uses the type |
Uses the type |
.Vt struct roff_meta |
.Vt struct roff_meta |
from |
from |
.Pa roff.h |
.Qq Pa roff.h |
as an opaque type for function prototypes. |
as an opaque type for function prototypes. |
.It Qq Pa manconf.h |
.It Qq Pa manconf.h |
Requires |
Requires |
|
|
Uses |
Uses |
.Vt struct manpaths |
.Vt struct manpaths |
from |
from |
.Pa manconf.h |
.Qq Pa manconf.h |
as an opaque type for function prototypes. |
as an opaque type for function prototypes. |
.Pp |
.Pp |
When this header is included, the same file should not include |
When this header is included, the same file should not include |
.Pa out.h , |
.Qq Pa out.h , |
.Pa term.h , |
.Qq Pa term.h , |
|
.Qq Pa tab_term.h , |
or |
or |
.Pa html.h . |
.Qq Pa html.h . |
.El |
.El |