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

Diff for /mandoc/roff_validate.c between version 1.10 and 1.11

version 1.10, 2018/08/10 20:40:45 version 1.11, 2018/12/04 02:53:51
Line 29 
Line 29 
   
 typedef void    (*roff_valid_fp)(ROFF_VALID_ARGS);  typedef void    (*roff_valid_fp)(ROFF_VALID_ARGS);
   
   static  void      roff_valid_br(ROFF_VALID_ARGS);
 static  void      roff_valid_ft(ROFF_VALID_ARGS);  static  void      roff_valid_ft(ROFF_VALID_ARGS);
   static  void      roff_valid_sp(ROFF_VALID_ARGS);
   
 static  const roff_valid_fp roff_valids[ROFF_MAX] = {  static  const roff_valid_fp roff_valids[ROFF_MAX] = {
         NULL,  /* br */          roff_valid_br,  /* br */
         NULL,  /* ce */          NULL,  /* ce */
         roff_valid_ft,  /* ft */          roff_valid_ft,  /* ft */
         NULL,  /* ll */          NULL,  /* ll */
         NULL,  /* mc */          NULL,  /* mc */
         NULL,  /* po */          NULL,  /* po */
         NULL,  /* rj */          NULL,  /* rj */
         NULL,  /* sp */          roff_valid_sp,  /* sp */
         NULL,  /* ta */          NULL,  /* ta */
         NULL,  /* ti */          NULL,  /* ti */
 };  };
Line 57  roff_validate(struct roff_man *man)
Line 59  roff_validate(struct roff_man *man)
 }  }
   
 static void  static void
   roff_valid_br(ROFF_VALID_ARGS)
   {
           struct roff_node        *np;
   
           if (n->child != NULL)
                   mandoc_vmsg(MANDOCERR_ARG_SKIP, man->parse,
                       n->line, n->pos, "br %s", n->child->string);
   
           if ((np = n->prev) == NULL)
                   return;
   
           switch (np->tok) {
           case ROFF_br:
           case ROFF_sp:
           case MDOC_Pp:
                   mandoc_vmsg(MANDOCERR_PAR_SKIP, man->parse,
                       n->line, n->pos, "br after %s", roff_name[np->tok]);
                   roff_node_delete(man, n);
                   break;
           default:
                   break;
           }
   }
   
   static void
 roff_valid_ft(ROFF_VALID_ARGS)  roff_valid_ft(ROFF_VALID_ARGS)
 {  {
         const char              *cp;          const char              *cp;
Line 96  roff_valid_ft(ROFF_VALID_ARGS)
Line 123  roff_valid_ft(ROFF_VALID_ARGS)
         mandoc_vmsg(MANDOCERR_FT_BAD, man->parse,          mandoc_vmsg(MANDOCERR_FT_BAD, man->parse,
             n->line, n->pos, "ft %s", cp);              n->line, n->pos, "ft %s", cp);
         roff_node_delete(man, n);          roff_node_delete(man, n);
   }
   
   static void
   roff_valid_sp(ROFF_VALID_ARGS)
   {
           struct roff_node        *np;
   
           if (n->child != NULL && n->child->next != NULL)
                   mandoc_vmsg(MANDOCERR_ARG_EXCESS, man->parse,
                       n->child->next->line, n->child->next->pos,
                       "sp ... %s", n->child->next->string);
   
           if ((np = n->prev) == NULL)
                   return;
   
           switch (np->tok) {
           case ROFF_br:
                   mandoc_msg(MANDOCERR_PAR_SKIP, man->parse,
                       np->line, np->pos, "br before sp");
                   roff_node_delete(man, np);
                   break;
           case MDOC_Pp:
                   mandoc_msg(MANDOCERR_PAR_SKIP, man->parse,
                       n->line, n->pos, "sp after Pp");
                   roff_node_delete(man, n);
                   break;
           default:
                   break;
           }
 }  }

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

CVSweb