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

Diff for /mandoc/Attic/validate.c between version 1.46 and 1.47

version 1.46, 2009/01/21 11:35:26 version 1.47, 2009/01/21 17:56:32
Line 150  const struct valids mdoc_valids[MDOC_MAX] = {
Line 150  const struct valids mdoc_valids[MDOC_MAX] = {
         { pres_prologue, posts_text }, /* Dd */          { pres_prologue, posts_text }, /* Dd */
         { pres_prologue, NULL }, /* Dt */          { pres_prologue, NULL }, /* Dt */
         { pres_prologue, NULL }, /* Os */          { pres_prologue, NULL }, /* Os */
         /* FIXME: NAME section internal ordering. */  
         { pres_sh, posts_sh }, /* Sh */          { pres_sh, posts_sh }, /* Sh */
         { pres_ss, posts_ss }, /* Ss */          { pres_ss, posts_ss }, /* Ss */
         { NULL, posts_pp }, /* Pp */          { NULL, posts_pp }, /* Pp */
Line 905  post_it(struct mdoc *mdoc)
Line 904  post_it(struct mdoc *mdoc)
 #define TYPE_NONE        (0)  #define TYPE_NONE        (0)
 #define TYPE_BODY        (1)  #define TYPE_BODY        (1)
 #define TYPE_HEAD        (2)  #define TYPE_HEAD        (2)
   #define TYPE_OHEAD       (3)
         size_t            i, argc;          size_t            i, argc;
         struct mdoc_node *n;          struct mdoc_node *n;
   
Line 951  post_it(struct mdoc *mdoc)
Line 951  post_it(struct mdoc *mdoc)
                 case (MDOC_Hyphen):                  case (MDOC_Hyphen):
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case (MDOC_Item):                  case (MDOC_Item):
                         /* FALLTHROUGH */  
                 case (MDOC_Column):  
                         type = TYPE_BODY;                          type = TYPE_BODY;
                         sv = n->data.block.argv[(int)i].arg;                          sv = n->data.block.argv[(int)i].arg;
                         break;                          break;
                   case (MDOC_Column):
                           type = TYPE_OHEAD;
                           sv = n->data.block.argv[(int)i].arg;
                           break;
                 default:                  default:
                         break;                          break;
                 }                  }
   
         assert(TYPE_NONE != type);          assert(TYPE_NONE != type);
   
           n = mdoc->last->data.block.head;
           assert(n);
   
         if (TYPE_HEAD == type) {          if (TYPE_HEAD == type) {
                 n = mdoc->last->data.block.head;  
                 assert(n);  
                 if (NULL == n->child)                  if (NULL == n->child)
                         if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests line parameters"))                          if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests line parameters"))
                                 return(0);                                  return(0);
Line 975  post_it(struct mdoc *mdoc)
Line 978  post_it(struct mdoc *mdoc)
                         if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests body children"))                          if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests body children"))
                                 return(0);                                  return(0);
   
                 return(1);          } else if (TYPE_BODY == type) {
                   if (n->child)
                           if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests no line parameters"))
                                   return(0);
   
                   n = mdoc->last->data.block.body;
                   assert(n);
                   if (NULL == n->child)
                           if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests body children"))
                                   return(0);
           } else {
                   if (NULL == n->child)
                           if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests line parameters"))
                                   return(0);
   
                   n = mdoc->last->data.block.body;
                   assert(n);
                   if (n->child)
                           if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests no body children"))
                                   return(0);
         }          }
   
         assert(TYPE_BODY == type);          if (MDOC_Column != sv)
         assert(mdoc->last->data.block.head);  
   
         n = mdoc->last->data.block.head;  
         assert(n);  
         if (n->child)  
                 if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests no line parameters"))  
                         return(0);  
   
         n = mdoc->last->data.block.body;  
         assert(n);  
         if (NULL == n->child)  
                 if ( ! mdoc_warn(mdoc, WARN_SYNTAX, "macro suggests body children"))  
                         return(0);  
   
         assert(-1 != sv);  
         if (MDOC_Column != sv)  
                 return(1);                  return(1);
   
         /* Make sure the number of columns is sane. */          /* Make sure the number of columns is sane. */
Line 1011  post_it(struct mdoc *mdoc)
Line 1017  post_it(struct mdoc *mdoc)
 #undef  TYPE_NONE  #undef  TYPE_NONE
 #undef  TYPE_BODY  #undef  TYPE_BODY
 #undef  TYPE_HEAD  #undef  TYPE_HEAD
   #undef  TYPE_OHEAD
 }  }
   
   

Legend:
Removed from v.1.46  
changed lines
  Added in v.1.47

CVSweb