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

Diff for /mandoc/mdoc_validate.c between version 1.96 and 1.97

version 1.96, 2010/06/12 11:58:22 version 1.97, 2010/06/12 12:10:55
Line 532  pre_display(PRE_ARGS)
Line 532  pre_display(PRE_ARGS)
 static int  static int
 pre_bl(PRE_ARGS)  pre_bl(PRE_ARGS)
 {  {
         int              i, width, offs, cmpt, dupl;          int              i, width, offs, comp, dup;
         enum mdoc_list   lt;          enum mdoc_list   lt;
   
         if (MDOC_BLOCK != n->type) {          if (MDOC_BLOCK != n->type) {
Line 552  pre_bl(PRE_ARGS)
Line 552  pre_bl(PRE_ARGS)
          */           */
   
         assert(LIST__NONE == n->data.Bl.type);          assert(LIST__NONE == n->data.Bl.type);
         offs = width = cmpt = -1;          offs = width = -1;
   
         /* LINTED */          /* LINTED */
         for (i = 0; n->args && i < (int)n->args->argc; i++) {          for (i = 0; n->args && i < (int)n->args->argc; i++) {
                 lt = LIST__NONE;                  lt = LIST__NONE;
                 dupl = 0;                  dup = comp = 0;
                 switch (n->args->argv[i].arg) {                  switch (n->args->argv[i].arg) {
                 /* Set list types. */                  /* Set list types. */
                 case (MDOC_Bullet):                  case (MDOC_Bullet):
Line 595  pre_bl(PRE_ARGS)
Line 595  pre_bl(PRE_ARGS)
                         break;                          break;
                 /* Set list arguments. */                  /* Set list arguments. */
                 case (MDOC_Compact):                  case (MDOC_Compact):
                         if (cmpt >= 0)                          dup = n->data.Bl.comp;
                                 dupl++;                          comp = 1;
                         cmpt = i;  
                         break;                          break;
                 case (MDOC_Width):                  case (MDOC_Width):
                         if (width >= 0)                          if (width >= 0)
                                 dupl++;                                  dup++;
                         width = i;                          width = i;
                         break;                          break;
                 case (MDOC_Offset):                  case (MDOC_Offset):
                         if (offs >= 0)                          if (offs >= 0)
                                 dupl++;                                  dup++;
                         offs = i;                          offs = i;
                         break;                          break;
                 }                  }
   
                 /* Check: duplicate auxiliary arguments. */                  /* Check: duplicate auxiliary arguments. */
   
                 if (dupl)                  if (dup && ! mdoc_nmsg(mdoc, n, MANDOCERR_ARGVREP))
                         if ( ! mdoc_nmsg(mdoc, n, MANDOCERR_ARGVREP))                          return(0);
                                 return(0);  
   
                   if (comp && ! dup)
                           n->data.Bl.comp = comp;
   
                 /* Check: multiple list types. */                  /* Check: multiple list types. */
   
                 if (LIST__NONE != lt && n->data.Bl.type != LIST__NONE)                  if (LIST__NONE != lt && n->data.Bl.type != LIST__NONE)
Line 631  pre_bl(PRE_ARGS)
Line 632  pre_bl(PRE_ARGS)
                 /* The list type should come first. */                  /* The list type should come first. */
   
                 if (n->data.Bl.type == LIST__NONE)                  if (n->data.Bl.type == LIST__NONE)
                         if (width >= 0 || offs >= 0 || cmpt >= 0)                          if (width >= 0 || offs >= 0 || n->data.Bl.comp)
                                 if ( ! mdoc_nmsg(mdoc, n, MANDOCERR_LISTFIRST))                                  if ( ! mdoc_nmsg(mdoc, n, MANDOCERR_LISTFIRST))
                                         return(0);                                          return(0);
   

Legend:
Removed from v.1.96  
changed lines
  Added in v.1.97

CVSweb