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

Diff for /mandoc/roff.c between version 1.140 and 1.141

version 1.140, 2011/05/24 15:22:14 version 1.141, 2011/05/24 21:18:06
Line 28 
Line 28 
 #include "libroff.h"  #include "libroff.h"
 #include "libmandoc.h"  #include "libmandoc.h"
   
   /* Maximum number of nested if-else conditionals. */
 #define RSTACK_MAX      128  #define RSTACK_MAX      128
   
 enum    rofft {  enum    rofft {
Line 60  enum rofft {
Line 61  enum rofft {
         ROFF_EQ,          ROFF_EQ,
         ROFF_EN,          ROFF_EN,
         ROFF_cblock,          ROFF_cblock,
         ROFF_ccond, /* FIXME: remove this. */          ROFF_ccond,
         ROFF_USERDEF,          ROFF_USERDEF,
         ROFF_MAX          ROFF_MAX
 };  };
Line 124  struct roffmac {
Line 125  struct roffmac {
         struct roffmac  *next;          struct roffmac  *next;
 };  };
   
   struct  predef {
           const char      *name; /* predefined input name */
           const char      *str; /* replacement symbol */
   };
   
   #define PREDEF(__name, __str) \
           { (__name), (__str) },
   
 static  enum rofferr     roff_block(ROFF_ARGS);  static  enum rofferr     roff_block(ROFF_ARGS);
 static  enum rofferr     roff_block_text(ROFF_ARGS);  static  enum rofferr     roff_block_text(ROFF_ARGS);
 static  enum rofferr     roff_block_sub(ROFF_ARGS);  static  enum rofferr     roff_block_sub(ROFF_ARGS);
Line 195  static struct roffmac  roffs[ROFF_MAX] = {
Line 204  static struct roffmac  roffs[ROFF_MAX] = {
         { NULL, roff_userdef, NULL, NULL, 0, NULL },          { NULL, roff_userdef, NULL, NULL, 0, NULL },
 };  };
   
   /* Array of injected predefined strings. */
   #define PREDEFS_MAX      38
   static  const struct predef predefs[PREDEFS_MAX] = {
   #include "predefs.in"
   };
   
 static  void             roff_free1(struct roff *);  static  void             roff_free1(struct roff *);
 static  enum rofft       roff_hash_find(const char *, size_t);  static  enum rofft       roff_hash_find(const char *, size_t);
 static  void             roff_hash_init(void);  static  void             roff_hash_init(void);
Line 228  roff_hash_init(void)
Line 243  roff_hash_init(void)
         }          }
 }  }
   
   
 /*  /*
  * Look up a roff token by its name.  Returns ROFF_MAX if no macro by   * Look up a roff token by its name.  Returns ROFF_MAX if no macro by
  * the nil-terminated string name could be found.   * the nil-terminated string name could be found.
Line 351  struct roff *
Line 365  struct roff *
 roff_alloc(struct regset *regs, struct mparse *parse)  roff_alloc(struct regset *regs, struct mparse *parse)
 {  {
         struct roff     *r;          struct roff     *r;
           int              i;
   
         r = mandoc_calloc(1, sizeof(struct roff));          r = mandoc_calloc(1, sizeof(struct roff));
         r->regs = regs;          r->regs = regs;
Line 358  roff_alloc(struct regset *regs, struct mparse *parse)
Line 373  roff_alloc(struct regset *regs, struct mparse *parse)
         r->rstackpos = -1;          r->rstackpos = -1;
   
         roff_hash_init();          roff_hash_init();
   
           for (i = 0; i < PREDEFS_MAX; i++)
                   roff_setstr(r, predefs[i].name, predefs[i].str, 0);
   
         return(r);          return(r);
 }  }
   

Legend:
Removed from v.1.140  
changed lines
  Added in v.1.141

CVSweb