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

Diff for /mandoc/Attic/mdoc_action.c between version 1.85 and 1.86

version 1.85, 2010/11/29 16:06:46 version 1.86, 2010/11/30 10:32:05
Line 52  static int   concat(struct mdoc *, char *,
Line 52  static int   concat(struct mdoc *, char *,
                         const struct mdoc_node *, size_t);                          const struct mdoc_node *, size_t);
   
 static  int       post_bl(POST_ARGS);  static  int       post_bl(POST_ARGS);
 static  int       post_bl_head(POST_ARGS);  
 static  int       post_bl_tagwidth(POST_ARGS);  static  int       post_bl_tagwidth(POST_ARGS);
 static  int       post_bl_width(POST_ARGS);  static  int       post_bl_width(POST_ARGS);
 static  int       post_dd(POST_ARGS);  static  int       post_dd(POST_ARGS);
Line 550  post_bl_width(POST_ARGS)
Line 549  post_bl_width(POST_ARGS)
 }  }
   
   
 /*  
  * Do processing for -column lists, which can have two distinct styles  
  * of invocation.  Merge this two styles into a consistent form.  
  */  
 /* ARGSUSED */  
 static int  static int
 post_bl_head(POST_ARGS)  
 {  
         int                      i, c;  
         struct mdoc_node        *np, *nn, *nnp;  
   
         if (LIST_column != n->data.Bl->type)  
                 return(1);  
         else if (NULL == n->child)  
                 return(1);  
   
         np = n->parent;  
         assert(np->args);  
   
         for (c = 0; c < (int)np->args->argc; c++)  
                 if (MDOC_Column == np->args->argv[c].arg)  
                         break;  
   
         assert(c < (int)np->args->argc);  
         assert(0 == np->args->argv[c].sz);  
   
         /*  
          * Accomodate for new-style groff column syntax.  Shuffle the  
          * child nodes, all of which must be TEXT, as arguments for the  
          * column field.  Then, delete the head children.  
          */  
   
         np->args->argv[c].sz = (size_t)n->nchild;  
         np->args->argv[c].value = mandoc_malloc  
                 ((size_t)n->nchild * sizeof(char *));  
   
         n->data.Bl->ncols = np->args->argv[c].sz;  
         n->data.Bl->cols = (const char **)np->args->argv[c].value;  
   
         for (i = 0, nn = n->child; nn; i++) {  
                 np->args->argv[c].value[i] = nn->string;  
                 nn->string = NULL;  
                 nnp = nn;  
                 nn = nn->next;  
                 mdoc_node_delete(NULL, nnp);  
         }  
   
         n->nchild = 0;  
         n->child = NULL;  
         return(1);  
 }  
   
   
 static int  
 post_bl(POST_ARGS)  post_bl(POST_ARGS)
 {  {
   
         if (MDOC_HEAD == n->type)  
                 return(post_bl_head(m, n));  
         if (MDOC_BLOCK != n->type)          if (MDOC_BLOCK != n->type)
                 return(1);                  return(1);
   

Legend:
Removed from v.1.85  
changed lines
  Added in v.1.86

CVSweb