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

Diff for /mandoc/Attic/validate.c between version 1.40 and 1.41

version 1.40, 2009/01/19 17:51:33 version 1.41, 2009/01/19 23:11:12
Line 71  static int pre_prologue(struct mdoc *, struct mdoc_nod
Line 71  static int pre_prologue(struct mdoc *, struct mdoc_nod
 /* Specific post-child-parse routines. */  /* Specific post-child-parse routines. */
   
 static  int     herr_ge1(struct mdoc *);  static  int     herr_ge1(struct mdoc *);
   static  int     herr_le1(struct mdoc *);
 static  int     hwarn_ge1(struct mdoc *);  static  int     hwarn_ge1(struct mdoc *);
 static  int     herr_eq0(struct mdoc *);  static  int     herr_eq0(struct mdoc *);
 static  int     eerr_eq0(struct mdoc *);  static  int     eerr_eq0(struct mdoc *);
Line 92  static int post_an(struct mdoc *);
Line 93  static int post_an(struct mdoc *);
 static  int     post_at(struct mdoc *);  static  int     post_at(struct mdoc *);
 static  int     post_xr(struct mdoc *);  static  int     post_xr(struct mdoc *);
 static  int     post_nm(struct mdoc *);  static  int     post_nm(struct mdoc *);
   static  int     post_bf(struct mdoc *);
 static  int     post_root(struct mdoc *);  static  int     post_root(struct mdoc *);
   
 /* Collections of pre-child-parse routines. */  /* Collections of pre-child-parse routines. */
Line 130  static v_post posts_an[] = { post_an, NULL };
Line 132  static v_post posts_an[] = { post_an, NULL };
 static  v_post  posts_at[] = { post_at, NULL };  static  v_post  posts_at[] = { post_at, NULL };
 static  v_post  posts_xr[] = { eerr_ge1, eerr_le2, post_xr, NULL };  static  v_post  posts_xr[] = { eerr_ge1, eerr_le2, post_xr, NULL };
 static  v_post  posts_nm[] = { post_nm, NULL };  static  v_post  posts_nm[] = { post_nm, NULL };
   static  v_post  posts_bf[] = { herr_le1, post_bf, NULL };
   
 /* Per-macro pre- and post-child-check routine collections. */  /* Per-macro pre- and post-child-check routine collections. */
   
Line 193  const struct valids mdoc_valids[MDOC_MAX] = {
Line 196  const struct valids mdoc_valids[MDOC_MAX] = {
         { NULL, posts_wline }, /* Aq */          { NULL, posts_wline }, /* Aq */
         { NULL, posts_at }, /* At */          { NULL, posts_at }, /* At */
         { NULL, NULL }, /* Bc */          { NULL, NULL }, /* Bc */
         { NULL, NULL }, /* Bf */  /* FIXME */          { NULL, posts_bf }, /* Bf */  /* FIXME */
         { NULL, NULL }, /* Bo */          { NULL, NULL }, /* Bo */
         { NULL, posts_wline }, /* Bq */          { NULL, posts_wline }, /* Bq */
         { NULL, NULL }, /* Bsx */          { NULL, NULL }, /* Bsx */
Line 474  hwarn_ge1(struct mdoc *mdoc)
Line 477  hwarn_ge1(struct mdoc *mdoc)
   
   
 static int  static int
   herr_le1(struct mdoc *mdoc)
   {
           if (MDOC_HEAD != mdoc->last->type)
                   return(1);
           return(post_check_children_lt(mdoc, "parameters", 2));
   }
   
   
   static int
 herr_ge1(struct mdoc *mdoc)  herr_ge1(struct mdoc *mdoc)
 {  {
   
Line 763  pre_prologue(struct mdoc *mdoc, struct mdoc_node *node
Line 775  pre_prologue(struct mdoc *mdoc, struct mdoc_node *node
         }          }
   
         return(mdoc_nerr(mdoc, node, "prologue macro repeated"));          return(mdoc_nerr(mdoc, node, "prologue macro repeated"));
   }
   
   
   static int
   post_bf(struct mdoc *mdoc)
   {
           char             *p;
           struct mdoc_node *head;
   
           if (MDOC_BLOCK != mdoc->last->type)
                   return(1);
           assert(MDOC_Bf == mdoc->last->tok);
           head = mdoc->last->data.block.head;
           assert(head);
   
           if (0 == mdoc->last->data.block.argc) {
                   if (head->child) {
                           assert(MDOC_TEXT == head->child->type);
                           p = head->child->data.text.string;
                           if (xstrcmp(p, "Em"))
                                   return(1);
                           else if (xstrcmp(p, "Li"))
                                   return(1);
                           else if (xstrcmp(p, "Sm"))
                                   return(1);
                           return(mdoc_nerr(mdoc, head->child, "invalid font mode"));
                   }
                   return(mdoc_err(mdoc, "macro expects an argument or parameter"));
           }
           if (head->child)
                   return(mdoc_err(mdoc, "macro expects an argument or parameter"));
           if (1 == mdoc->last->data.block.argc)
                   return(1);
           return(mdoc_err(mdoc, "macro expects an argument or parameter"));
 }  }
   
   

Legend:
Removed from v.1.40  
changed lines
  Added in v.1.41

CVSweb