[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.7 and 1.8

version 1.7, 2009/06/10 20:18:43 version 1.8, 2009/06/11 10:34:31
Line 50  enum merr {
Line 50  enum merr {
   
 enum    mwarn {  enum    mwarn {
         WPRINT,          WPRINT,
           WNOWIDTH,
           WMISSWIDTH,
         WESCAPE,          WESCAPE,
           WDEPCOL,
         WWRONGMSEC,          WWRONGMSEC,
         WSECOOO,          WSECOOO,
         WSECREP,          WSECREP,
Line 460  pwarn(struct mdoc *m, int line, int pos, enum mwarn ty
Line 463  pwarn(struct mdoc *m, int line, int pos, enum mwarn ty
                 p = "prologue macros out-of-order";                  p = "prologue macros out-of-order";
                 c = WARN_COMPAT;                  c = WARN_COMPAT;
                 break;                  break;
           case (WDEPCOL):
                   p = "deprecated column argument syntax";
                   c = WARN_COMPAT;
                   break;
           case (WNOWIDTH):
                   p = "superfluous width argument";
                   break;
           case (WMISSWIDTH):
                   p = "missing width argument";
                   break;
         case (WPRINT):          case (WPRINT):
                 p = "invalid character";                  p = "invalid character";
                 break;                  break;
Line 776  pre_display(PRE_ARGS)
Line 789  pre_display(PRE_ARGS)
 static int  static int
 pre_bl(PRE_ARGS)  pre_bl(PRE_ARGS)
 {  {
         int              i, type, width, offset;          int              pos, type, width, offset;
   
         if (MDOC_BLOCK != n->type)          if (MDOC_BLOCK != n->type)
                 return(1);                  return(1);
Line 788  pre_bl(PRE_ARGS)
Line 801  pre_bl(PRE_ARGS)
         type = offset = width = -1;          type = offset = width = -1;
   
         /* LINTED */          /* LINTED */
         for (i = 0; i < (int)n->args->argc; i++)          for (pos = 0; pos < (int)n->args->argc; pos++)
                 switch (n->args->argv[i].arg) {                  switch (n->args->argv[pos].arg) {
                 case (MDOC_Bullet):                  case (MDOC_Bullet):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case (MDOC_Dash):                  case (MDOC_Dash):
Line 811  pre_bl(PRE_ARGS)
Line 824  pre_bl(PRE_ARGS)
                 case (MDOC_Inset):                  case (MDOC_Inset):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case (MDOC_Column):                  case (MDOC_Column):
                         if (-1 == type) {                          if (-1 != type)
                                 type = n->args->argv[i].arg;                                  return(nerr(mdoc, n, EMULTILIST));
                                 break;                          type = n->args->argv[pos].arg;
                         }                          break;
                         return(nerr(mdoc, n, EMULTILIST));  
                 case (MDOC_Width):                  case (MDOC_Width):
                         if (-1 == width) {                          if (-1 != width)
                                 width = n->args->argv[i].arg;                                  return(nerr(mdoc, n, EARGREP));
                                 break;                          width = n->args->argv[pos].arg;
                         }                          break;
                         return(nerr(mdoc, n, EARGREP));  
                 case (MDOC_Offset):                  case (MDOC_Offset):
                         if (-1 == offset) {                          if (-1 != offset)
                                 offset = n->args->argv[i].arg;                                  return(nerr(mdoc, n, EARGREP));
                                 break;                          offset = n->args->argv[pos].arg;
                         }                          break;
                         return(nerr(mdoc, n, EARGREP));  
                 default:                  default:
                         break;                          break;
                 }                  }
Line 835  pre_bl(PRE_ARGS)
Line 845  pre_bl(PRE_ARGS)
         if (-1 == type)          if (-1 == type)
                 return(nerr(mdoc, n, ELISTTYPE));                  return(nerr(mdoc, n, ELISTTYPE));
   
           /*
            * Validate the width field.  Some list types don't need width
            * types and should be warned about them.  Others should have it
            * and must also be warned.
            */
   
         switch (type) {          switch (type) {
           case (MDOC_Tag):
                   if (-1 == width && ! nwarn(mdoc, n, WMISSWIDTH))
                           return(0);
                   break;
         case (MDOC_Column):          case (MDOC_Column):
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case (MDOC_Diag):          case (MDOC_Diag):
Line 843  pre_bl(PRE_ARGS)
Line 863  pre_bl(PRE_ARGS)
         case (MDOC_Inset):          case (MDOC_Inset):
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case (MDOC_Item):          case (MDOC_Item):
                 if (-1 == width)                  if (-1 != width && ! nwarn(mdoc, n, WNOWIDTH))
                           return(0);
                   break;
           default:
                   break;
           }
   
           /*
            * General validation of fields.
            */
   
           switch (type) {
           case (MDOC_Column):
                   if (0 == n->args->argv[pos].sz)
                         break;                          break;
                 return(mdoc_nwarn(mdoc, n, WARN_SYNTAX,                  if ( ! nwarn(mdoc, n, WDEPCOL))
                                 "superfluous %s argument",                          return(0);
                                 mdoc_argnames[MDOC_Width]));                  break;
         case (MDOC_Tag):  
                 if (-1 != width)  
                         break;  
                 return(mdoc_nwarn(mdoc, n, WARN_SYNTAX,  
                                 "suggest %s argument",  
                                 mdoc_argnames[MDOC_Width]));  
         default:          default:
                 break;                  break;
         }          }

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

CVSweb