[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.197 and 1.203

version 1.197, 2015/04/29 21:58:32 version 1.203, 2015/10/12 00:08:15
Line 243  lookup(struct roff_man *mdoc, int from, int line, int 
Line 243  lookup(struct roff_man *mdoc, int from, int line, int 
                 res = mdoc_hash_find(p);                  res = mdoc_hash_find(p);
                 if (res != TOKEN_NONE) {                  if (res != TOKEN_NONE) {
                         if (mdoc_macros[res].flags & MDOC_CALLABLE)                          if (mdoc_macros[res].flags & MDOC_CALLABLE)
                                 return(res);                                  return res;
                         if (res != MDOC_br && res != MDOC_sp && res != MDOC_ll)                          if (res != MDOC_br && res != MDOC_sp && res != MDOC_ll)
                                 mandoc_msg(MANDOCERR_MACRO_CALL,                                  mandoc_msg(MANDOCERR_MACRO_CALL,
                                     mdoc->parse, line, ppos, p);                                      mdoc->parse, line, ppos, p);
                 }                  }
         }          }
         return(TOKEN_NONE);          return TOKEN_NONE;
 }  }
   
 /*  /*
Line 258  lookup(struct roff_man *mdoc, int from, int line, int 
Line 258  lookup(struct roff_man *mdoc, int from, int line, int 
 static void  static void
 rew_last(struct roff_man *mdoc, const struct roff_node *to)  rew_last(struct roff_man *mdoc, const struct roff_node *to)
 {  {
         struct roff_node *n, *np;          struct roff_node        *np;
   
         if (to->flags & MDOC_VALID)          if (to->flags & MDOC_VALID)
                 return;                  return;
   
         mdoc->next = ROFF_NEXT_SIBLING;  
         while (mdoc->last != to) {          while (mdoc->last != to) {
                 /*                  /*
                  * Save the parent here, because we may delete the                   * Save the parent here, because we may delete the
Line 273  rew_last(struct roff_man *mdoc, const struct roff_node
Line 272  rew_last(struct roff_man *mdoc, const struct roff_node
                  */                   */
                 np = mdoc->last->parent;                  np = mdoc->last->parent;
                 mdoc_valid_post(mdoc);                  mdoc_valid_post(mdoc);
                 n = mdoc->last;  
                 mdoc->last = np;                  mdoc->last = np;
                 assert(mdoc->last);                  assert(mdoc->last);
                 mdoc->last->last = n;  
         }          }
           mdoc->next = ROFF_NEXT_SIBLING;
         mdoc_valid_post(mdoc);          mdoc_valid_post(mdoc);
 }  }
   
Line 331  rew_alt(int tok)
Line 329  rew_alt(int tok)
 {  {
         switch (tok) {          switch (tok) {
         case MDOC_Ac:          case MDOC_Ac:
                 return(MDOC_Ao);                  return MDOC_Ao;
         case MDOC_Bc:          case MDOC_Bc:
                 return(MDOC_Bo);                  return MDOC_Bo;
         case MDOC_Brc:          case MDOC_Brc:
                 return(MDOC_Bro);                  return MDOC_Bro;
         case MDOC_Dc:          case MDOC_Dc:
                 return(MDOC_Do);                  return MDOC_Do;
         case MDOC_Ec:          case MDOC_Ec:
                 return(MDOC_Eo);                  return MDOC_Eo;
         case MDOC_Ed:          case MDOC_Ed:
                 return(MDOC_Bd);                  return MDOC_Bd;
         case MDOC_Ef:          case MDOC_Ef:
                 return(MDOC_Bf);                  return MDOC_Bf;
         case MDOC_Ek:          case MDOC_Ek:
                 return(MDOC_Bk);                  return MDOC_Bk;
         case MDOC_El:          case MDOC_El:
                 return(MDOC_Bl);                  return MDOC_Bl;
         case MDOC_Fc:          case MDOC_Fc:
                 return(MDOC_Fo);                  return MDOC_Fo;
         case MDOC_Oc:          case MDOC_Oc:
                 return(MDOC_Oo);                  return MDOC_Oo;
         case MDOC_Pc:          case MDOC_Pc:
                 return(MDOC_Po);                  return MDOC_Po;
         case MDOC_Qc:          case MDOC_Qc:
                 return(MDOC_Qo);                  return MDOC_Qo;
         case MDOC_Re:          case MDOC_Re:
                 return(MDOC_Rs);                  return MDOC_Rs;
         case MDOC_Sc:          case MDOC_Sc:
                 return(MDOC_So);                  return MDOC_So;
         case MDOC_Xc:          case MDOC_Xc:
                 return(MDOC_Xo);                  return MDOC_Xo;
         default:          default:
                 return(tok);                  return tok;
         }          }
         /* NOTREACHED */  
 }  }
   
 static void  static void
Line 416  find_pending(struct roff_man *mdoc, int tok, int line,
Line 413  find_pending(struct roff_man *mdoc, int tok, int line,
                         }                          }
                 }                  }
         }          }
         return(irc);          return irc;
 }  }
   
 /*  /*
Line 511  macro_or_word(MACRO_PROT_ARGS, int parsed)
Line 508  macro_or_word(MACRO_PROT_ARGS, int parsed)
         if (ntok == TOKEN_NONE) {          if (ntok == TOKEN_NONE) {
                 dword(mdoc, line, ppos, p, DELIM_MAX, tok == TOKEN_NONE ||                  dword(mdoc, line, ppos, p, DELIM_MAX, tok == TOKEN_NONE ||
                     mdoc_macros[tok].flags & MDOC_JOIN);                      mdoc_macros[tok].flags & MDOC_JOIN);
                 return(0);                  return 0;
         } else {          } else {
                 if (mdoc_macros[tok].fp == in_line_eoln)                  if (mdoc_macros[tok].fp == in_line_eoln)
                         rew_elem(mdoc, tok);                          rew_elem(mdoc, tok);
                 mdoc_macro(mdoc, ntok, line, ppos, pos, buf);                  mdoc_macro(mdoc, ntok, line, ppos, pos, buf);
                 if (tok == TOKEN_NONE)                  if (tok == TOKEN_NONE)
                         append_delims(mdoc, line, pos, buf);                          append_delims(mdoc, line, pos, buf);
                 return(1);                  return 1;
         }          }
 }  }
   
Line 737  in_line(MACRO_PROT_ARGS)
Line 734  in_line(MACRO_PROT_ARGS)
   
         switch (tok) {          switch (tok) {
         case MDOC_An:          case MDOC_An:
                 /* FALLTHROUGH */  
         case MDOC_Ar:          case MDOC_Ar:
                 /* FALLTHROUGH */  
         case MDOC_Fl:          case MDOC_Fl:
                 /* FALLTHROUGH */  
         case MDOC_Mt:          case MDOC_Mt:
                 /* FALLTHROUGH */  
         case MDOC_Nm:          case MDOC_Nm:
                 /* FALLTHROUGH */  
         case MDOC_Pa:          case MDOC_Pa:
                 nc = 1;                  nc = 1;
                 break;                  break;
Line 949  blk_full(MACRO_PROT_ARGS)
Line 941  blk_full(MACRO_PROT_ARGS)
                         if (mdoc_macros[n->tok].flags & MDOC_EXPLICIT) {                          if (mdoc_macros[n->tok].flags & MDOC_EXPLICIT) {
                                 switch (tok) {                                  switch (tok) {
                                 case MDOC_Sh:                                  case MDOC_Sh:
                                         /* FALLTHROUGH */  
                                 case MDOC_Ss:                                  case MDOC_Ss:
                                         mandoc_vmsg(MANDOCERR_BLK_BROKEN,                                          mandoc_vmsg(MANDOCERR_BLK_BROKEN,
                                             mdoc->parse, line, ppos,                                              mdoc->parse, line, ppos,
Line 1292  in_line_argn(MACRO_PROT_ARGS)
Line 1283  in_line_argn(MACRO_PROT_ARGS)
   
         switch (tok) {          switch (tok) {
         case MDOC_Ap:          case MDOC_Ap:
                 /* FALLTHROUGH */  
         case MDOC_Ns:          case MDOC_Ns:
                 /* FALLTHROUGH */  
         case MDOC_Ux:          case MDOC_Ux:
                 maxargs = 0;                  maxargs = 0;
                 break;                  break;
         case MDOC_Bx:          case MDOC_Bx:
                 /* FALLTHROUGH */  
         case MDOC_Es:          case MDOC_Es:
                 /* FALLTHROUGH */  
         case MDOC_Xr:          case MDOC_Xr:
                 maxargs = 2;                  maxargs = 2;
                 break;                  break;
Line 1399  in_line_eoln(MACRO_PROT_ARGS)
Line 1386  in_line_eoln(MACRO_PROT_ARGS)
                 if (mdoc->next == ROFF_NEXT_SIBLING)                  if (mdoc->next == ROFF_NEXT_SIBLING)
                         n = n->parent;                          n = n->parent;
                 if (n->tok == MDOC_Nm)                  if (n->tok == MDOC_Nm)
                         rew_last(mdoc, mdoc->last->parent);                          rew_last(mdoc, n->parent);
         }          }
   
         if (buf[*pos] == '\0' &&          if (buf[*pos] == '\0' &&
Line 1429  parse_rest(struct roff_man *mdoc, int tok, int line, i
Line 1416  parse_rest(struct roff_man *mdoc, int tok, int line, i
         for (;;) {          for (;;) {
                 la = *pos;                  la = *pos;
                 if (mdoc_args(mdoc, line, pos, buf, tok, NULL) == ARGS_EOLN)                  if (mdoc_args(mdoc, line, pos, buf, tok, NULL) == ARGS_EOLN)
                         return(0);                          return 0;
                 if (macro_or_word(mdoc, tok, line, la, pos, buf, 1))                  if (macro_or_word(mdoc, tok, line, la, pos, buf, 1))
                         return(1);                          return 1;
         }          }
 }  }
   

Legend:
Removed from v.1.197  
changed lines
  Added in v.1.203

CVSweb