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

Diff for /mandoc/mdoc.c between version 1.13 and 1.16

version 1.13, 2009/01/01 20:40:16 version 1.16, 2009/01/05 14:14:04
Line 80  const char *const __mdoc_argnames[MDOC_ARG_MAX] = {   
Line 80  const char *const __mdoc_argnames[MDOC_ARG_MAX] = {   
         "xsh5",                 "xns5",                 "xns5.2d2.0",          "xsh5",                 "xns5",                 "xns5.2d2.0",
         "xcurses4.2",           "susv2",                "susv3",          "xcurses4.2",           "susv2",                "susv3",
         "svid4",                "filled",               "words",          "svid4",                "filled",               "words",
           "emphasis",             "symbolic",
         };          };
   
 const   struct mdoc_macro __mdoc_macros[MDOC_MAX] = {  const   struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
Line 98  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
Line 99  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
         { macro_close_explicit, 0 }, /* El */          { macro_close_explicit, 0 }, /* El */
         { NULL, 0 }, /* It */          { NULL, 0 }, /* It */
         { macro_text, MDOC_CALLABLE }, /* Ad */          { macro_text, MDOC_CALLABLE }, /* Ad */
         { NULL, 0 }, /* An */          { macro_constant, 0 }, /* An */
         { macro_text, MDOC_CALLABLE }, /* Ar */          { macro_text, MDOC_CALLABLE }, /* Ar */
         { macro_constant, MDOC_QUOTABLE }, /* Cd */          { macro_constant, MDOC_QUOTABLE }, /* Cd */
         { macro_text, MDOC_CALLABLE }, /* Cm */          { macro_text, MDOC_CALLABLE }, /* Cm */
Line 140  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
Line 141  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
         { macro_scoped_line, MDOC_CALLABLE }, /* Aq */          { macro_scoped_line, MDOC_CALLABLE }, /* Aq */
         { macro_constant, 0 }, /* At */          { macro_constant, 0 }, /* At */
         { NULL, 0 }, /* Bc */          { NULL, 0 }, /* Bc */
         { NULL, 0 }, /* Bf */          { macro_scoped, MDOC_EXPLICIT }, /* Bf */
         { NULL, 0 }, /* Bo */          { NULL, 0 }, /* Bo */
         { macro_scoped_line, MDOC_CALLABLE }, /* Bq */          { macro_scoped_line, MDOC_CALLABLE }, /* Bq */
         { macro_constant_delimited, 0 }, /* Bsx */          { macro_constant_delimited, 0 }, /* Bsx */
Line 150  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
Line 151  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
         { NULL, 0 }, /* Do */          { NULL, 0 }, /* Do */
         { macro_scoped_line, MDOC_CALLABLE }, /* Dq */          { macro_scoped_line, MDOC_CALLABLE }, /* Dq */
         { NULL, 0 }, /* Ec */          { NULL, 0 }, /* Ec */
         { NULL, 0 }, /* Ef */          { macro_close_explicit, 0 }, /* Ef */
         { macro_text, MDOC_CALLABLE }, /* Em */          { macro_text, MDOC_CALLABLE }, /* Em */
         { NULL, 0 }, /* Eo */          { NULL, 0 }, /* Eo */
         { macro_constant_delimited, 0 }, /* Fx */          { macro_constant_delimited, 0 }, /* Fx */
Line 160  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
Line 161  const struct mdoc_macro __mdoc_macros[MDOC_MAX] = {
         { macro_constant_delimited, 0 }, /* Nx */          { macro_constant_delimited, 0 }, /* Nx */
         { macro_constant_delimited, 0 }, /* Ox */          { macro_constant_delimited, 0 }, /* Ox */
         { NULL, 0 }, /* Pc */          { NULL, 0 }, /* Pc */
         { NULL, 0 }, /* Pf */          { macro_constant, 0 }, /* Pf */
         { NULL, 0 }, /* Po */          { NULL, 0 }, /* Po */
         { macro_scoped_line, MDOC_CALLABLE }, /* Pq */          { macro_scoped_line, MDOC_CALLABLE }, /* Pq */
         { NULL, 0 }, /* Qc */          { NULL, 0 }, /* Qc */
Line 200  static struct mdoc_arg  *argdup(size_t, const struct m
Line 201  static struct mdoc_arg  *argdup(size_t, const struct m
 static  void              argfree(size_t, struct mdoc_arg *);  static  void              argfree(size_t, struct mdoc_arg *);
 static  void              argcpy(struct mdoc_arg *,  static  void              argcpy(struct mdoc_arg *,
                                 const struct mdoc_arg *);                                  const struct mdoc_arg *);
 static  char            **paramdup(size_t, const char **);  
 static  void              paramfree(size_t, char **);  
   
 static  void              mdoc_node_freelist(struct mdoc_node *);  static  void              mdoc_node_freelist(struct mdoc_node *);
 static  void              mdoc_node_append(struct mdoc *, int,  static  void              mdoc_node_append(struct mdoc *, int,
Line 490  mdoc_block_alloc(struct mdoc *mdoc, int pos, int tok,
Line 489  mdoc_block_alloc(struct mdoc *mdoc, int pos, int tok,
   
 void  void
 mdoc_elem_alloc(struct mdoc *mdoc, int pos, int tok,  mdoc_elem_alloc(struct mdoc *mdoc, int pos, int tok,
                 size_t argsz, const struct mdoc_arg *args,                  size_t argsz, const struct mdoc_arg *args)
                 size_t paramsz, const char **params)  
 {  {
         struct mdoc_node *p;          struct mdoc_node *p;
   
         p = xcalloc(1, sizeof(struct mdoc_node));          p = xcalloc(1, sizeof(struct mdoc_node));
         p->type = MDOC_ELEM;          p->type = MDOC_ELEM;
         p->data.elem.tok = tok;          p->data.elem.tok = tok;
         p->data.elem.sz = paramsz;          /* FIXME: freeing of params... */
         p->data.elem.args = paramdup(paramsz, params);  
         p->data.elem.argc = argsz;          p->data.elem.argc = argsz;
         p->data.elem.argv = argdup(argsz, args);          p->data.elem.argv = argdup(argsz, args);
   
Line 545  static void
Line 542  static void
 mdoc_elem_free(struct mdoc_elem *p)  mdoc_elem_free(struct mdoc_elem *p)
 {  {
   
         paramfree(p->sz, p->args);  
         argfree(p->argc, p->argv);          argfree(p->argc, p->argv);
 }  }
   
Line 640  argdup(size_t argsz, const struct mdoc_arg *args)
Line 636  argdup(size_t argsz, const struct mdoc_arg *args)
         return(pp);          return(pp);
 }  }
   
   
 static void  
 paramfree(size_t sz, char **p)  
 {  
         int              i;  
   
         if (0 == sz)  
                 return;  
   
         assert(p);  
         /* LINTED */  
         for (i = 0; i < (int)sz; i++)  
                 free(p[i]);  
         free(p);  
 }  
   
   
 static char **  
 paramdup(size_t sz, const char **p)  
 {  
         char            **pp;  
         int               i;  
   
         if (0 == sz)  
                 return(NULL);  
   
         pp = xcalloc(sz, sizeof(char *));  
         for (i = 0; i < (int)sz; i++)  
                 pp[i] = xstrdup(p[i]);  
   
         return(pp);  
 }  

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.16

CVSweb