[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.42 and 1.45

version 1.42, 2009/08/20 13:22:48 version 1.45, 2009/10/15 02:56:51
Line 89  static int  post_it(POST_ARGS);
Line 89  static int  post_it(POST_ARGS);
 static  int      post_lb(POST_ARGS);  static  int      post_lb(POST_ARGS);
 static  int      post_nm(POST_ARGS);  static  int      post_nm(POST_ARGS);
 static  int      post_root(POST_ARGS);  static  int      post_root(POST_ARGS);
   static  int      post_rs(POST_ARGS);
 static  int      post_sh(POST_ARGS);  static  int      post_sh(POST_ARGS);
 static  int      post_sh_body(POST_ARGS);  static  int      post_sh_body(POST_ARGS);
 static  int      post_sh_head(POST_ARGS);  static  int      post_sh_head(POST_ARGS);
Line 125  static v_post  posts_nd[] = { berr_ge1, NULL };
Line 126  static v_post  posts_nd[] = { berr_ge1, NULL };
 static  v_post   posts_nm[] = { post_nm, NULL };  static  v_post   posts_nm[] = { post_nm, NULL };
 static  v_post   posts_notext[] = { eerr_eq0, NULL };  static  v_post   posts_notext[] = { eerr_eq0, NULL };
 static  v_post   posts_pf[] = { eerr_eq1, NULL };  static  v_post   posts_pf[] = { eerr_eq1, NULL };
   static  v_post   posts_rs[] = { berr_ge1, herr_eq0, post_rs, NULL };
 static  v_post   posts_sh[] = { herr_ge1, bwarn_ge1, post_sh, NULL };  static  v_post   posts_sh[] = { herr_ge1, bwarn_ge1, post_sh, NULL };
 static  v_post   posts_sp[] = { post_sp, NULL };  static  v_post   posts_sp[] = { post_sp, NULL };
 static  v_post   posts_ss[] = { herr_ge1, NULL };  static  v_post   posts_ss[] = { herr_ge1, NULL };
Line 236  const struct valids mdoc_valids[MDOC_MAX] = {
Line 238  const struct valids mdoc_valids[MDOC_MAX] = {
         { NULL, NULL },                         /* Qo */          { NULL, NULL },                         /* Qo */
         { NULL, posts_wline },                  /* Qq */          { NULL, posts_wline },                  /* Qq */
         { NULL, NULL },                         /* Re */          { NULL, NULL },                         /* Re */
         { NULL, posts_wline },                  /* Rs */          { NULL, posts_rs },                     /* Rs */
         { NULL, NULL },                         /* Sc */          { NULL, NULL },                         /* Sc */
         { NULL, NULL },                         /* So */          { NULL, NULL },                         /* So */
         { NULL, posts_wline },                  /* Sq */          { NULL, posts_wline },                  /* Sq */
Line 619  pre_bl(PRE_ARGS)
Line 621  pre_bl(PRE_ARGS)
                 case (MDOC_Inset):                  case (MDOC_Inset):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case (MDOC_Column):                  case (MDOC_Column):
                         if (-1 != type)                          if (type >= 0)
                                 return(mdoc_nerr(mdoc, n, EMULTILIST));                                  return(mdoc_nerr(mdoc, n, EMULTILIST));
                         type = n->args->argv[pos].arg;                          type = n->args->argv[pos].arg;
                         break;                          break;
                   case (MDOC_Compact):
                           if (type < 0 && ! mdoc_nwarn(mdoc, n, ENOTYPE))
                                   return(0);
                           break;
                 case (MDOC_Width):                  case (MDOC_Width):
                         if (-1 != width)                          if (width >= 0)
                                 return(mdoc_nerr(mdoc, n, EARGREP));                                  return(mdoc_nerr(mdoc, n, EARGREP));
                           if (type < 0 && ! mdoc_nwarn(mdoc, n, ENOTYPE))
                                   return(0);
                         width = n->args->argv[pos].arg;                          width = n->args->argv[pos].arg;
                         break;                          break;
                 case (MDOC_Offset):                  case (MDOC_Offset):
                         if (-1 != offset)                          if (offset >= 0)
                                 return(mdoc_nerr(mdoc, n, EARGREP));                                  return(mdoc_nerr(mdoc, n, EARGREP));
                           if (type < 0 && ! mdoc_nwarn(mdoc, n, ENOTYPE))
                                   return(0);
                         offset = n->args->argv[pos].arg;                          offset = n->args->argv[pos].arg;
                         break;                          break;
                 default:                  default:
                         break;                          break;
                 }                  }
   
         if (-1 == type)          if (type < 0)
                 return(mdoc_nerr(mdoc, n, ELISTTYPE));                  return(mdoc_nerr(mdoc, n, ELISTTYPE));
   
         /*          /*
Line 648  pre_bl(PRE_ARGS)
Line 658  pre_bl(PRE_ARGS)
   
         switch (type) {          switch (type) {
         case (MDOC_Tag):          case (MDOC_Tag):
                 if (-1 == width && ! mdoc_nwarn(mdoc, n, EMISSWIDTH))                  if (width < 0 && ! mdoc_nwarn(mdoc, n, EMISSWIDTH))
                         return(0);                          return(0);
                 break;                  break;
         case (MDOC_Column):          case (MDOC_Column):
Line 658  pre_bl(PRE_ARGS)
Line 668  pre_bl(PRE_ARGS)
         case (MDOC_Inset):          case (MDOC_Inset):
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case (MDOC_Item):          case (MDOC_Item):
                 if (-1 != width && ! mdoc_nwarn(mdoc, n, ENOWIDTH))                  if (width >= 0 && ! mdoc_nwarn(mdoc, n, ENOWIDTH))
                         return(0);                          return(0);
                 break;                  break;
         default:          default:
Line 1077  post_bl(POST_ARGS)
Line 1087  post_bl(POST_ARGS)
                 if (MDOC_BLOCK == n->type)                  if (MDOC_BLOCK == n->type)
                         if (MDOC_It == n->tok)                          if (MDOC_It == n->tok)
                                 continue;                                  continue;
                 return(mdoc_verr(mdoc, n->line, n->pos,                  return(mdoc_nerr(mdoc, n, EBADCHILD));
                                 "bad child of parent %s",  
                                 mdoc_macronames[mdoc->last->tok]));  
         }          }
   
         return(1);          return(1);
Line 1164  post_st(POST_ARGS)
Line 1172  post_st(POST_ARGS)
         if (mdoc_a2st(mdoc->last->child->string))          if (mdoc_a2st(mdoc->last->child->string))
                 return(1);                  return(1);
         return(mdoc_nerr(mdoc, mdoc->last, EBADSTAND));          return(mdoc_nerr(mdoc, mdoc->last, EBADSTAND));
   }
   
   
   static int
   post_rs(POST_ARGS)
   {
           struct mdoc_node        *nn;
   
           if (MDOC_BODY != mdoc->last->type)
                   return(1);
   
           for (nn = mdoc->last->child; nn; nn = nn->next)
                   switch (nn->tok) {
                   case(MDOC__Q):
                           /* FALLTHROUGH */
                   case(MDOC__C):
                           /* FALLTHROUGH */
                   case(MDOC__A):
                           /* FALLTHROUGH */
                   case(MDOC__B):
                           /* FALLTHROUGH */
                   case(MDOC__D):
                           /* FALLTHROUGH */
                   case(MDOC__I):
                           /* FALLTHROUGH */
                   case(MDOC__J):
                           /* FALLTHROUGH */
                   case(MDOC__N):
                           /* FALLTHROUGH */
                   case(MDOC__O):
                           /* FALLTHROUGH */
                   case(MDOC__P):
                           /* FALLTHROUGH */
                   case(MDOC__R):
                           /* FALLTHROUGH */
                   case(MDOC__T):
                           /* FALLTHROUGH */
                   case(MDOC__V):
                           break;
                   default:
                           return(mdoc_nerr(mdoc, nn, EBADCHILD));
                   }
   
           return(1);
 }  }
   
   

Legend:
Removed from v.1.42  
changed lines
  Added in v.1.45

CVSweb