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

Diff for /mandoc/mdoc.h between version 1.109 and 1.119

version 1.109, 2010/12/22 11:15:16 version 1.119, 2011/03/20 16:02:05
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  *   *
  * 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 190  enum mdoc_type {
Line 190  enum mdoc_type {
         MDOC_TAIL,          MDOC_TAIL,
         MDOC_BODY,          MDOC_BODY,
         MDOC_BLOCK,          MDOC_BLOCK,
           MDOC_TBL,
           MDOC_EQN,
         MDOC_ROOT          MDOC_ROOT
 };  };
   
Line 230  struct mdoc_meta {
Line 232  struct mdoc_meta {
         char             *msec; /* `Dt' section (1, 3p, etc.) */          char             *msec; /* `Dt' section (1, 3p, etc.) */
         char             *vol; /* `Dt' volume (implied) */          char             *vol; /* `Dt' volume (implied) */
         char             *arch; /* `Dt' arch (i386, etc.) */          char             *arch; /* `Dt' arch (i386, etc.) */
         time_t            date; /* `Dd' normalised date */          char             *date; /* `Dd' normalised date */
         char             *title; /* `Dt' title (FOO, etc.) */          char             *title; /* `Dt' title (FOO, etc.) */
         char             *os; /* `Os' system (OpenBSD, etc.) */          char             *os; /* `Os' system (OpenBSD, etc.) */
         char             *name; /* leading `Nm' name */          char             *name; /* leading `Nm' name */
Line 353  struct mdoc_an {
Line 355  struct mdoc_an {
         enum mdoc_auth    auth; /* -split, etc. */          enum mdoc_auth    auth; /* -split, etc. */
 };  };
   
   struct  mdoc_rs {
           int               quote_T; /* whether to quote %T */
   };
   
 /*  /*
  * Consists of normalised node arguments.  These should be used instead   * Consists of normalised node arguments.  These should be used instead
  * of iterating through the mdoc_arg pointers of a node: defaults are   * of iterating through the mdoc_arg pointers of a node: defaults are
Line 363  union mdoc_data {
Line 369  union mdoc_data {
         struct mdoc_bd    Bd;          struct mdoc_bd    Bd;
         struct mdoc_bf    Bf;          struct mdoc_bf    Bf;
         struct mdoc_bl    Bl;          struct mdoc_bl    Bl;
           struct mdoc_rs    Rs;
 };  };
   
 /*  
  * Reference-counted structure for containing normalised arguments of  
  * certain macros (those listed in union mdoc_data).  
  */  
 struct  mdoc_norm {  
         int               refcnt;  
         union mdoc_data   d;  
 };  
   
 /*  /*
  * Single node in tree-linked AST.   * Single node in tree-linked AST.
  */   */
Line 389  struct mdoc_node {
Line 387  struct mdoc_node {
         enum mdoct        tok; /* tok or MDOC__MAX if none */          enum mdoct        tok; /* tok or MDOC__MAX if none */
         int               flags;          int               flags;
 #define MDOC_VALID       (1 << 0) /* has been validated */  #define MDOC_VALID       (1 << 0) /* has been validated */
 #define MDOC_ACTED       (1 << 1) /* has been acted upon */  
 #define MDOC_EOS         (1 << 2) /* at sentence boundary */  #define MDOC_EOS         (1 << 2) /* at sentence boundary */
 #define MDOC_LINE        (1 << 3) /* first macro/text on line */  #define MDOC_LINE        (1 << 3) /* first macro/text on line */
 #define MDOC_SYNPRETTY   (1 << 4) /* SYNOPSIS-style formatting */  #define MDOC_SYNPRETTY   (1 << 4) /* SYNOPSIS-style formatting */
 #define MDOC_ENDED       (1 << 5) /* rendering has been ended */  #define MDOC_ENDED       (1 << 5) /* rendering has been ended */
         enum mdoc_type    type; /* AST node type */          enum mdoc_type    type; /* AST node type */
         enum mdoc_sec     sec; /* current named section */          enum mdoc_sec     sec; /* current named section */
         struct mdoc_norm *norm; /* ref-counted, normalised args */          union mdoc_data  *norm; /* normalised args */
         /* FIXME: these can be union'd to shave a few bytes. */          /* FIXME: these can be union'd to shave a few bytes. */
         struct mdoc_arg  *args; /* BLOCK/ELEM */          struct mdoc_arg  *args; /* BLOCK/ELEM */
         struct mdoc_node *pending; /* BLOCK */          struct mdoc_node *pending; /* BLOCK */
Line 404  struct mdoc_node {
Line 401  struct mdoc_node {
         struct mdoc_node *body; /* BLOCK */          struct mdoc_node *body; /* BLOCK */
         struct mdoc_node *tail; /* BLOCK */          struct mdoc_node *tail; /* BLOCK */
         char             *string; /* TEXT */          char             *string; /* TEXT */
           const struct tbl_span *span; /* TBL */
           const struct eqn *eqn; /* EQN */
         enum mdoc_endbody end; /* BODY */          enum mdoc_endbody end; /* BODY */
 };  };
   
Line 425  __BEGIN_DECLS
Line 424  __BEGIN_DECLS
 struct  mdoc;  struct  mdoc;
   
 void              mdoc_free(struct mdoc *);  void              mdoc_free(struct mdoc *);
 struct  mdoc     *mdoc_alloc(struct regset *, void *, mandocmsg);  struct  mdoc     *mdoc_alloc(struct regset *, struct mparse *);
 void              mdoc_reset(struct mdoc *);  void              mdoc_reset(struct mdoc *);
 int               mdoc_parseln(struct mdoc *, int, char *, int);  int               mdoc_parseln(struct mdoc *, int, char *, int);
 const struct mdoc_node *mdoc_node(const struct mdoc *);  const struct mdoc_node *mdoc_node(const struct mdoc *);
 const struct mdoc_meta *mdoc_meta(const struct mdoc *);  const struct mdoc_meta *mdoc_meta(const struct mdoc *);
 int               mdoc_endparse(struct mdoc *);  int               mdoc_endparse(struct mdoc *);
   int               mdoc_addspan(struct mdoc *,
                           const struct tbl_span *);
   int               mdoc_addeqn(struct mdoc *,
                           const struct eqn *);
   
 __END_DECLS  __END_DECLS
   

Legend:
Removed from v.1.109  
changed lines
  Added in v.1.119

CVSweb