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

Diff for /mandoc/mdoc.h between version 1.56 and 1.63

version 1.56, 2009/04/12 19:45:26 version 1.63, 2009/07/12 20:24:24
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@openbsd.org>   * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 29 
Line 29 
   
 /* What follows is a list of ALL possible macros. */  /* What follows is a list of ALL possible macros. */
   
 #define MDOC___          0  #define MDOC_Ap          0
 #define MDOC_Dd          1  #define MDOC_Dd          1
 #define MDOC_Dt          2  #define MDOC_Dt          2
 #define MDOC_Os          3  #define MDOC_Os          3
Line 136 
Line 136 
 #define MDOC_Fr          104  #define MDOC_Fr          104
 #define MDOC_Ud          105  #define MDOC_Ud          105
 #define MDOC_Lb          106  #define MDOC_Lb          106
 #define MDOC_Ap          107  #define MDOC_Lp          107
 #define MDOC_Lp          108  #define MDOC_Lk          108
 #define MDOC_Lk          109  #define MDOC_Mt          109
 #define MDOC_Mt          110  #define MDOC_Brq         110
 #define MDOC_Brq         111  #define MDOC_Bro         111
 #define MDOC_Bro         112  #define MDOC_Brc         112
 #define MDOC_Brc         113  #define MDOC__C          113
 #define MDOC__C          114  #define MDOC_Es          114
 #define MDOC_Es          115  #define MDOC_En          115
 #define MDOC_En          116  #define MDOC_Dx          116
 #define MDOC_Dx          117  #define MDOC__Q          117
 #define MDOC__Q          118  #define MDOC_MAX         118
 #define MDOC_MAX         119  
   
 /* What follows is a list of ALL possible macro arguments. */  /* What follows is a list of ALL possible macro arguments. */
   
Line 180 
Line 179 
 #define MDOC_Nested      25  #define MDOC_Nested      25
 #define MDOC_ARG_MAX     26  #define MDOC_ARG_MAX     26
   
 /* Warnings are either syntax or groff-compatibility. */  
 enum    mdoc_warn {  
         WARN_SYNTAX,  
         WARN_COMPAT  
 };  
   
 /* Type of a syntax node. */  /* Type of a syntax node. */
 enum    mdoc_type {  enum    mdoc_type {
         MDOC_TEXT,          MDOC_TEXT,
Line 199  enum mdoc_type {
Line 192  enum mdoc_type {
   
 /* Section (named/unnamed) of `Sh'. */  /* Section (named/unnamed) of `Sh'. */
 enum    mdoc_sec {  enum    mdoc_sec {
         SEC_PROLOGUE            = 0,          SEC_NONE,               /* No section, yet. */
         SEC_BODY                = 1,          SEC_NAME,
         SEC_NAME                = 2,          SEC_LIBRARY,
         SEC_LIBRARY             = 3,          SEC_SYNOPSIS,
         SEC_SYNOPSIS            = 4,          SEC_DESCRIPTION,
         SEC_DESCRIPTION         = 5,          SEC_IMPLEMENTATION,
         SEC_IMPLEMENTATION      = 6,          SEC_RETURN_VALUES,
         SEC_RETURN_VALUES       = 7,          SEC_ENVIRONMENT,
         SEC_ENVIRONMENT         = 8,          SEC_FILES,
         SEC_FILES               = 9,          SEC_EXAMPLES,
         SEC_EXAMPLES            = 10,          SEC_DIAGNOSTICS,
         SEC_DIAGNOSTICS         = 11,          SEC_COMPATIBILITY,
         SEC_COMPATIBILITY       = 12,          SEC_ERRORS,
         SEC_ERRORS              = 13,          SEC_SEE_ALSO,
         SEC_SEE_ALSO            = 14,          SEC_STANDARDS,
         SEC_STANDARDS           = 15,          SEC_HISTORY,
         SEC_HISTORY             = 16,          SEC_AUTHORS,
         SEC_AUTHORS             = 17,          SEC_CAVEATS,
         SEC_CAVEATS             = 18,          SEC_BUGS,
         SEC_BUGS                = 19,          SEC_CUSTOM              /* User-defined. */
         SEC_CUSTOM  
 };  };
   
 /* Information from prologue. */  /* Information from prologue. */
Line 254  struct mdoc_node {
Line 246  struct mdoc_node {
         struct mdoc_node *child;          struct mdoc_node *child;
         struct mdoc_node *next;          struct mdoc_node *next;
         struct mdoc_node *prev;          struct mdoc_node *prev;
           int               nchild;
         int               line;          int               line;
         int               pos;          int               pos;
         int               tok;          int               tok;
Line 277  struct mdoc_node {
Line 270  struct mdoc_node {
 #define MDOC_IGN_CHARS   (1 << 3) /* Ignore disallowed chars. */  #define MDOC_IGN_CHARS   (1 << 3) /* Ignore disallowed chars. */
   
 /* Call-backs for parse messages. */  /* Call-backs for parse messages. */
   /* FIXME: unify somehow with man_cb. */
 struct  mdoc_cb {  struct  mdoc_cb {
         void    (*mdoc_msg)(void *, int, int, const char *);  
         int     (*mdoc_err)(void *, int, int, const char *);          int     (*mdoc_err)(void *, int, int, const char *);
         int     (*mdoc_warn)(void *, int, int,          int     (*mdoc_warn)(void *, int, int, const char *);
                         enum mdoc_warn, const char *);  
 };  };
   
 /* Global table of macro names (`Bd', `Ed', etc.). */  /* See mdoc.3 for documentation. */
 extern  const char *const *mdoc_macronames;  
   
 /* Global table of argument names (`column', `tag', etc.). */  extern  const char *const *mdoc_macronames;
 extern  const char *const *mdoc_argnames;  extern  const char *const *mdoc_argnames;
   
 __BEGIN_DECLS  __BEGIN_DECLS
   
 struct  mdoc;  struct  mdoc;
   
 /* Free memory allocated with mdoc_alloc. */  /* See mdoc.3 for documentation. */
 void              mdoc_free(struct mdoc *);  
   
 /* Allocate a new parser instance. */  void              mdoc_free(struct mdoc *);
 struct  mdoc     *mdoc_alloc(void *, int, const struct mdoc_cb *);  struct  mdoc     *mdoc_alloc(void *, int, const struct mdoc_cb *);
   
 /* Gets system ready for another parse. */  
 int               mdoc_reset(struct mdoc *);  int               mdoc_reset(struct mdoc *);
   
 /* Parse a single line in a stream (boolean retval). */  
 int               mdoc_parseln(struct mdoc *, int, char *buf);  int               mdoc_parseln(struct mdoc *, int, char *buf);
   
 /* Get result first node (after mdoc_endparse!). */  
 const struct mdoc_node *mdoc_node(const struct mdoc *);  const struct mdoc_node *mdoc_node(const struct mdoc *);
   
 /* Get result meta-information (after mdoc_endparse!). */  
 const struct mdoc_meta *mdoc_meta(const struct mdoc *);  const struct mdoc_meta *mdoc_meta(const struct mdoc *);
   
 /* Signal end of parse sequence (boolean retval). */  
 int               mdoc_endparse(struct mdoc *);  int               mdoc_endparse(struct mdoc *);
   
 /* The following are utility functions. */  
   
 const char       *mdoc_a2att(const char *);  
 const char       *mdoc_a2lib(const char *);  const char       *mdoc_a2lib(const char *);
 const char       *mdoc_a2st(const char *);  const char       *mdoc_a2st(const char *);
   

Legend:
Removed from v.1.56  
changed lines
  Added in v.1.63

CVSweb