[BACK]Return to mandoc_headers.3 CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/mandoc_headers.3 between version 1.30 and 1.35

version 1.30, 2018/12/30 00:49:55 version 1.35, 2022/04/14 16:43:44
Line 1 
Line 1 
   .\" $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 ,
Line 67  for
Line 83  for
 .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
Line 251  described in
Line 322  described in
 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
Line 269  described in
Line 340  described in
 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
Line 372  parser.
Line 443  parser.
 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
Line 399  parser.
Line 470  parser.
 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
Line 437  and
Line 508  and
 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
Line 523  and
Line 594  and
 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
Line 558  Uses
Line 629  Uses
 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
Line 602  Uses
Line 703  Uses
 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
Line 671  and
Line 761  and
 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

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.35

CVSweb