[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.363 and 1.364

version 1.363, 2018/12/03 21:00:11 version 1.364, 2018/12/04 02:53:51
Line 370  mdoc_node_validate(struct roff_man *mdoc)
Line 370  mdoc_node_validate(struct roff_man *mdoc)
                 /* Call the macro's postprocessor. */                  /* Call the macro's postprocessor. */
   
                 if (n->tok < ROFF_MAX) {                  if (n->tok < ROFF_MAX) {
                         switch(n->tok) {                          roff_validate(mdoc);
                         case ROFF_br:  
                         case ROFF_sp:  
                                 post_par(mdoc);  
                                 break;  
                         default:  
                                 roff_validate(mdoc);  
                                 break;  
                         }  
                         break;                          break;
                 }                  }
   
Line 956  build_list(struct roff_man *mdoc, int tok)
Line 948  build_list(struct roff_man *mdoc, int tok)
         for (ic = 1;; ic++) {          for (ic = 1;; ic++) {
                 roff_elem_alloc(mdoc, n->line, n->pos, tok);                  roff_elem_alloc(mdoc, n->line, n->pos, tok);
                 mdoc->last->flags |= NODE_NOSRC;                  mdoc->last->flags |= NODE_NOSRC;
                 mdoc_node_relink(mdoc, n);                  roff_node_relink(mdoc, n);
                 n = mdoc->last = mdoc->last->parent;                  n = mdoc->last = mdoc->last->parent;
                 mdoc->next = ROFF_NEXT_SIBLING;                  mdoc->next = ROFF_NEXT_SIBLING;
                 if (n->next == NULL)                  if (n->next == NULL)
Line 1297  post_nm(POST_ARGS)
Line 1289  post_nm(POST_ARGS)
                 mandoc_xr_add(mdoc->meta.msec, n->child->string, -1, -1);                  mandoc_xr_add(mdoc->meta.msec, n->child->string, -1, -1);
   
         if (n->last != NULL && n->last->tok == MDOC_Pp)          if (n->last != NULL && n->last->tok == MDOC_Pp)
                 mdoc_node_relink(mdoc, n->last);                  roff_node_relink(mdoc, n->last);
   
         if (mdoc->meta.name == NULL)          if (mdoc->meta.name == NULL)
                 deroff(&mdoc->meta.name, n);                  deroff(&mdoc->meta.name, n);
Line 1376  post_display(POST_ARGS)
Line 1368  post_display(POST_ARGS)
                                     mdoc->parse, n->line, n->pos, "Bd");                                      mdoc->parse, n->line, n->pos, "Bd");
                                 mdoc->next = ROFF_NEXT_SIBLING;                                  mdoc->next = ROFF_NEXT_SIBLING;
                                 while (n->body->child != NULL)                                  while (n->body->child != NULL)
                                         mdoc_node_relink(mdoc,                                          roff_node_relink(mdoc,
                                             n->body->child);                                              n->body->child);
                                 roff_node_delete(mdoc, n);                                  roff_node_delete(mdoc, n);
                                 break;                                  break;
Line 1659  post_bl_block(POST_ARGS)
Line 1651  post_bl_block(POST_ARGS)
                                 mandoc_msg(MANDOCERR_PAR_MOVE,                                  mandoc_msg(MANDOCERR_PAR_MOVE,
                                     mdoc->parse, nc->line, nc->pos,                                      mdoc->parse, nc->line, nc->pos,
                                     roff_name[nc->tok]);                                      roff_name[nc->tok]);
                                 mdoc_node_relink(mdoc, nc);                                  roff_node_relink(mdoc, nc);
                         } else if (n->norm->Bl.comp == 0 &&                          } else if (n->norm->Bl.comp == 0 &&
                             n->norm->Bl.type != LIST_column) {                              n->norm->Bl.type != LIST_column) {
                                 mandoc_vmsg(MANDOCERR_PAR_SKIP,                                  mandoc_vmsg(MANDOCERR_PAR_SKIP,
Line 1819  post_bl(POST_ARGS)
Line 1811  post_bl(POST_ARGS)
                         roff_body_alloc(mdoc, nchild->line,                          roff_body_alloc(mdoc, nchild->line,
                             nchild->pos, MDOC_It);                              nchild->pos, MDOC_It);
                         while (nchild->tok != MDOC_It) {                          while (nchild->tok != MDOC_It) {
                                 mdoc_node_relink(mdoc, nchild);                                  roff_node_relink(mdoc, nchild);
                                 if ((nchild = nnext) == NULL)                                  if ((nchild = nnext) == NULL)
                                         break;                                          break;
                                 nnext = nchild->next;                                  nnext = nchild->next;
Line 1938  post_sm(POST_ARGS)
Line 1930  post_sm(POST_ARGS)
         mandoc_vmsg(MANDOCERR_SM_BAD,          mandoc_vmsg(MANDOCERR_SM_BAD,
             mdoc->parse, nch->line, nch->pos,              mdoc->parse, nch->line, nch->pos,
             "%s %s", roff_name[mdoc->last->tok], nch->string);              "%s %s", roff_name[mdoc->last->tok], nch->string);
         mdoc_node_relink(mdoc, nch);          roff_node_relink(mdoc, nch);
         return;          return;
 }  }
   
Line 2522  post_ignpar(POST_ARGS)
Line 2514  post_ignpar(POST_ARGS)
         }          }
   
         if ((np = mdoc->last->child) != NULL)          if ((np = mdoc->last->child) != NULL)
                 if (np->tok == MDOC_Pp) {                  if (np->tok == MDOC_Pp ||
                       np->tok == ROFF_br || np->tok == ROFF_sp) {
                         mandoc_vmsg(MANDOCERR_PAR_SKIP,                          mandoc_vmsg(MANDOCERR_PAR_SKIP,
                             mdoc->parse, np->line, np->pos,                              mdoc->parse, np->line, np->pos,
                             "%s after %s", roff_name[np->tok],                              "%s after %s", roff_name[np->tok],
Line 2531  post_ignpar(POST_ARGS)
Line 2524  post_ignpar(POST_ARGS)
                 }                  }
   
         if ((np = mdoc->last->last) != NULL)          if ((np = mdoc->last->last) != NULL)
                 if (np->tok == MDOC_Pp) {                  if (np->tok == MDOC_Pp || np->tok == ROFF_br) {
                         mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse,                          mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse,
                             np->line, np->pos, "%s at the end of %s",                              np->line, np->pos, "%s at the end of %s",
                             roff_name[np->tok],                              roff_name[np->tok],
Line 2576  post_par(POST_ARGS)
Line 2569  post_par(POST_ARGS)
 {  {
         struct roff_node *np;          struct roff_node *np;
   
         np = mdoc->last;          post_prevpar(mdoc);
         if (np->tok != ROFF_br && np->tok != ROFF_sp)  
                 post_prevpar(mdoc);  
   
         if (np->tok == ROFF_sp) {          np = mdoc->last;
                 if (np->child != NULL && np->child->next != NULL)          if (np->child != NULL)
                         mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse,  
                             np->child->next->line, np->child->next->pos,  
                             "sp ... %s", np->child->next->string);  
         } else if (np->child != NULL)  
                 mandoc_vmsg(MANDOCERR_ARG_SKIP,                  mandoc_vmsg(MANDOCERR_ARG_SKIP,
                     mdoc->parse, np->line, np->pos, "%s %s",                      mdoc->parse, np->line, np->pos, "%s %s",
                     roff_name[np->tok], np->child->string);                      roff_name[np->tok], np->child->string);
   
         if ((np = mdoc->last->prev) == NULL) {  
                 np = mdoc->last->parent;  
                 if (np->tok != MDOC_Sh && np->tok != MDOC_Ss)  
                         return;  
         } else if (np->tok != MDOC_Pp &&  
             (mdoc->last->tok != ROFF_br ||  
              (np->tok != ROFF_sp && np->tok != ROFF_br)))  
                 return;  
   
         mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse,  
             mdoc->last->line, mdoc->last->pos, "%s after %s",  
             roff_name[mdoc->last->tok], roff_name[np->tok]);  
         roff_node_delete(mdoc, mdoc->last);  
 }  }
   
 static void  static void

Legend:
Removed from v.1.363  
changed lines
  Added in v.1.364

CVSweb