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

Diff for /mandoc/mdoc_macro.c between version 1.226 and 1.227

version 1.226, 2018/12/04 02:53:51 version 1.227, 2018/12/14 05:18:02
Line 228  mdoc_endparse(struct roff_man *mdoc)
Line 228  mdoc_endparse(struct roff_man *mdoc)
         for ( ; n; n = n->parent)          for ( ; n; n = n->parent)
                 if (n->type == ROFFT_BLOCK &&                  if (n->type == ROFFT_BLOCK &&
                     mdoc_macro(n->tok)->flags & MDOC_EXPLICIT)                      mdoc_macro(n->tok)->flags & MDOC_EXPLICIT)
                         mandoc_msg(MANDOCERR_BLK_NOEND, mdoc->parse,                          mandoc_msg(MANDOCERR_BLK_NOEND,
                             n->line, n->pos, roff_name[n->tok]);                              n->line, n->pos, "%s", roff_name[n->tok]);
   
         /* Rewind to the first. */          /* Rewind to the first. */
   
Line 255  lookup(struct roff_man *mdoc, int from, int line, int 
Line 255  lookup(struct roff_man *mdoc, int from, int line, int 
                 if (res != TOKEN_NONE) {                  if (res != TOKEN_NONE) {
                         if (mdoc_macro(res)->flags & MDOC_CALLABLE)                          if (mdoc_macro(res)->flags & MDOC_CALLABLE)
                                 return res;                                  return res;
                         mandoc_msg(MANDOCERR_MACRO_CALL,                          mandoc_msg(MANDOCERR_MACRO_CALL, line, ppos, "%s", p);
                             mdoc->parse, line, ppos, p);  
                 }                  }
         }          }
         return TOKEN_NONE;          return TOKEN_NONE;
Line 421  find_pending(struct roff_man *mdoc, enum roff_tok tok,
Line 420  find_pending(struct roff_man *mdoc, enum roff_tok tok,
                         if (target->type == ROFFT_HEAD)                          if (target->type == ROFFT_HEAD)
                                 target->flags |= NODE_ENDED;                                  target->flags |= NODE_ENDED;
                         else if ( ! (target->flags & NODE_ENDED)) {                          else if ( ! (target->flags & NODE_ENDED)) {
                                 mandoc_vmsg(MANDOCERR_BLK_NEST,                                  mandoc_msg(MANDOCERR_BLK_NEST,
                                     mdoc->parse, line, ppos,                                      line, ppos, "%s breaks %s",
                                     "%s breaks %s", roff_name[tok],                                      roff_name[tok], roff_name[n->tok]);
                                     roff_name[n->tok]);  
                                 mdoc_endbody_alloc(mdoc, line, ppos,                                  mdoc_endbody_alloc(mdoc, line, ppos,
                                     tok, target);                                      tok, target);
                         }                          }
Line 635  blk_exp_close(MACRO_PROT_ARGS)
Line 633  blk_exp_close(MACRO_PROT_ARGS)
                          * the scope - of the current block ends.                           * the scope - of the current block ends.
                          */                           */
   
                         mandoc_vmsg(MANDOCERR_BLK_NEST, mdoc->parse,                          mandoc_msg(MANDOCERR_BLK_NEST,
                             line, ppos, "%s breaks %s",                              line, ppos, "%s breaks %s",
                             roff_name[atok], roff_name[later->tok]);                              roff_name[atok], roff_name[later->tok]);
   
Line 678  blk_exp_close(MACRO_PROT_ARGS)
Line 676  blk_exp_close(MACRO_PROT_ARGS)
         }          }
   
         if (body == NULL) {          if (body == NULL) {
                 mandoc_msg(MANDOCERR_BLK_NOTOPEN, mdoc->parse,                  mandoc_msg(MANDOCERR_BLK_NOTOPEN, line, ppos,
                     line, ppos, roff_name[tok]);                      "%s", roff_name[tok]);
                 if (maxargs && endbody == NULL) {                  if (maxargs && endbody == NULL) {
                         /*                          /*
                          * Stray .Ec without previous .Eo:                           * Stray .Ec without previous .Eo:
Line 696  blk_exp_close(MACRO_PROT_ARGS)
Line 694  blk_exp_close(MACRO_PROT_ARGS)
   
         if ((mdoc_macro(tok)->flags & MDOC_PARSED) == 0) {          if ((mdoc_macro(tok)->flags & MDOC_PARSED) == 0) {
                 if (buf[*pos] != '\0')                  if (buf[*pos] != '\0')
                         mandoc_vmsg(MANDOCERR_ARG_SKIP,                          mandoc_msg(MANDOCERR_ARG_SKIP, line, ppos,
                             mdoc->parse, line, ppos,                              "%s %s", roff_name[tok], buf + *pos);
                             "%s %s", roff_name[tok],  
                             buf + *pos);  
                 if (endbody == NULL && n != NULL)                  if (endbody == NULL && n != NULL)
                         rew_pending(mdoc, n);                          rew_pending(mdoc, n);
                 return;                  return;
Line 834  in_line(MACRO_PROT_ARGS)
Line 830  in_line(MACRO_PROT_ARGS)
                         } else if ( ! nc && ! cnt) {                          } else if ( ! nc && ! cnt) {
                                 mdoc_argv_free(arg);                                  mdoc_argv_free(arg);
                                 mandoc_msg(MANDOCERR_MACRO_EMPTY,                                  mandoc_msg(MANDOCERR_MACRO_EMPTY,
                                     mdoc->parse, line, ppos,                                      line, ppos, "%s", roff_name[tok]);
                                     roff_name[tok]);  
                         }                          }
                         (*mdoc_macro(ntok)->fp)(mdoc, ntok,                          (*mdoc_macro(ntok)->fp)(mdoc, ntok,
                             line, la, pos, buf);                              line, la, pos, buf);
Line 921  in_line(MACRO_PROT_ARGS)
Line 916  in_line(MACRO_PROT_ARGS)
                         rew_last(mdoc, mdoc->last);                          rew_last(mdoc, mdoc->last);
                 } else {                  } else {
                         mdoc_argv_free(arg);                          mdoc_argv_free(arg);
                         mandoc_msg(MANDOCERR_MACRO_EMPTY, mdoc->parse,                          mandoc_msg(MANDOCERR_MACRO_EMPTY,
                             line, ppos, roff_name[tok]);                              line, ppos, "%s", roff_name[tok]);
                 }                  }
         }          }
         if (nl)          if (nl)
Line 946  blk_full(MACRO_PROT_ARGS)
Line 941  blk_full(MACRO_PROT_ARGS)
         nl = MDOC_NEWLINE & mdoc->flags;          nl = MDOC_NEWLINE & mdoc->flags;
   
         if (buf[*pos] == '\0' && (tok == MDOC_Sh || tok == MDOC_Ss)) {          if (buf[*pos] == '\0' && (tok == MDOC_Sh || tok == MDOC_Ss)) {
                 mandoc_msg(MANDOCERR_MACRO_EMPTY, mdoc->parse,                  mandoc_msg(MANDOCERR_MACRO_EMPTY,
                     line, ppos, roff_name[tok]);                      line, ppos, "%s", roff_name[tok]);
                 return;                  return;
         }          }
   
Line 967  blk_full(MACRO_PROT_ARGS)
Line 962  blk_full(MACRO_PROT_ARGS)
   
                         if (tok == MDOC_It && n->tok == MDOC_Bl) {                          if (tok == MDOC_It && n->tok == MDOC_Bl) {
                                 if (blk != NULL) {                                  if (blk != NULL) {
                                         mandoc_vmsg(MANDOCERR_BLK_BROKEN,                                          mandoc_msg(MANDOCERR_BLK_BROKEN,
                                             mdoc->parse, line, ppos,                                              line, ppos, "It breaks %s",
                                             "It breaks %s",  
                                             roff_name[blk->tok]);                                              roff_name[blk->tok]);
                                         rew_pending(mdoc, blk);                                          rew_pending(mdoc, blk);
                                 }                                  }
Line 980  blk_full(MACRO_PROT_ARGS)
Line 974  blk_full(MACRO_PROT_ARGS)
                                 switch (tok) {                                  switch (tok) {
                                 case MDOC_Sh:                                  case MDOC_Sh:
                                 case MDOC_Ss:                                  case MDOC_Ss:
                                         mandoc_vmsg(MANDOCERR_BLK_BROKEN,                                          mandoc_msg(MANDOCERR_BLK_BROKEN,
                                             mdoc->parse, line, ppos,                                              line, ppos,
                                             "%s breaks %s", roff_name[tok],                                              "%s breaks %s", roff_name[tok],
                                             roff_name[n->tok]);                                              roff_name[n->tok]);
                                         rew_pending(mdoc, n);                                          rew_pending(mdoc, n);
Line 1007  blk_full(MACRO_PROT_ARGS)
Line 1001  blk_full(MACRO_PROT_ARGS)
                         /* Item breaking an explicit block. */                          /* Item breaking an explicit block. */
   
                         if (blk != NULL) {                          if (blk != NULL) {
                                 mandoc_vmsg(MANDOCERR_BLK_BROKEN,                                  mandoc_msg(MANDOCERR_BLK_BROKEN, line, ppos,
                                     mdoc->parse, line, ppos,  
                                     "It breaks %s", roff_name[blk->tok]);                                      "It breaks %s", roff_name[blk->tok]);
                                 rew_pending(mdoc, blk);                                  rew_pending(mdoc, blk);
                                 blk = NULL;                                  blk = NULL;
Line 1022  blk_full(MACRO_PROT_ARGS)
Line 1015  blk_full(MACRO_PROT_ARGS)
                 /* Skip items outside lists. */                  /* Skip items outside lists. */
   
                 if (tok == MDOC_It && (n == NULL || n->tok != MDOC_Bl)) {                  if (tok == MDOC_It && (n == NULL || n->tok != MDOC_Bl)) {
                         mandoc_vmsg(MANDOCERR_IT_STRAY, mdoc->parse,                          mandoc_msg(MANDOCERR_IT_STRAY,
                             line, ppos, "It %s", buf + *pos);                              line, ppos, "It %s", buf + *pos);
                         roff_elem_alloc(mdoc, line, ppos, ROFF_br);                          roff_elem_alloc(mdoc, line, ppos, ROFF_br);
                         rew_elem(mdoc, ROFF_br);                          rew_elem(mdoc, ROFF_br);
Line 1100  blk_full(MACRO_PROT_ARGS)
Line 1093  blk_full(MACRO_PROT_ARGS)
                 }                  }
   
                 if (tok == MDOC_Bd || tok == MDOC_Bk) {                  if (tok == MDOC_Bd || tok == MDOC_Bk) {
                         mandoc_vmsg(MANDOCERR_ARG_EXCESS,                          mandoc_msg(MANDOCERR_ARG_EXCESS, line, la,
                             mdoc->parse, line, la, "%s ... %s",                              "%s ... %s", roff_name[tok], buf + la);
                             roff_name[tok], buf + la);  
                         break;                          break;
                 }                  }
                 if (tok == MDOC_Rs) {                  if (tok == MDOC_Rs) {
                         mandoc_vmsg(MANDOCERR_ARG_SKIP, mdoc->parse,                          mandoc_msg(MANDOCERR_ARG_SKIP,
                             line, la, "Rs %s", buf + la);                              line, la, "Rs %s", buf + la);
                         break;                          break;
                 }                  }
Line 1360  in_line_argn(MACRO_PROT_ARGS)
Line 1352  in_line_argn(MACRO_PROT_ARGS)
   
                 if (ac == ARGS_PUNCT || ac == ARGS_EOLN) {                  if (ac == ARGS_PUNCT || ac == ARGS_EOLN) {
                         if (abs(state) < 2 && tok == MDOC_Pf)                          if (abs(state) < 2 && tok == MDOC_Pf)
                                 mandoc_vmsg(MANDOCERR_PF_SKIP,                                  mandoc_msg(MANDOCERR_PF_SKIP,
                                     mdoc->parse, line, ppos, "Pf %s",                                      line, ppos, "Pf %s",
                                     p == NULL ? "at eol" : p);                                      p == NULL ? "at eol" : p);
                         break;                          break;
                 }                  }
Line 1401  in_line_argn(MACRO_PROT_ARGS)
Line 1393  in_line_argn(MACRO_PROT_ARGS)
         }          }
   
         if (state == -1) {          if (state == -1) {
                 mandoc_msg(MANDOCERR_MACRO_EMPTY, mdoc->parse,                  mandoc_msg(MANDOCERR_MACRO_EMPTY,
                     line, ppos, roff_name[tok]);                      line, ppos, "%s", roff_name[tok]);
                 return;                  return;
         }          }
   
Line 1431  in_line_eoln(MACRO_PROT_ARGS)
Line 1423  in_line_eoln(MACRO_PROT_ARGS)
   
         if (buf[*pos] == '\0' &&          if (buf[*pos] == '\0' &&
             (tok == MDOC_Fd || *roff_name[tok] == '%')) {              (tok == MDOC_Fd || *roff_name[tok] == '%')) {
                 mandoc_msg(MANDOCERR_MACRO_EMPTY, mdoc->parse,                  mandoc_msg(MANDOCERR_MACRO_EMPTY,
                     line, ppos, roff_name[tok]);                      line, ppos, "%s", roff_name[tok]);
                 return;                  return;
         }          }
   
Line 1500  phrase_ta(MACRO_PROT_ARGS)
Line 1492  phrase_ta(MACRO_PROT_ARGS)
         }          }
   
         if (n == NULL || n->norm->Bl.type != LIST_column) {          if (n == NULL || n->norm->Bl.type != LIST_column) {
                 mandoc_msg(MANDOCERR_TA_STRAY, mdoc->parse,                  mandoc_msg(MANDOCERR_TA_STRAY, line, ppos, "Ta");
                     line, ppos, "Ta");  
                 return;                  return;
         }          }
   

Legend:
Removed from v.1.226  
changed lines
  Added in v.1.227

CVSweb