[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.27 and 1.28

version 1.27, 2009/07/25 16:03:03 version 1.28, 2009/07/29 08:46:06
Line 47  static int   rew_subblock(enum mdoc_type, 
Line 47  static int   rew_subblock(enum mdoc_type, 
                         struct mdoc *, int, int, int);                          struct mdoc *, int, int, int);
 static  int       rew_last(struct mdoc *, struct mdoc_node *);  static  int       rew_last(struct mdoc *, struct mdoc_node *);
 static  int       append_delims(struct mdoc *, int, int *, char *);  static  int       append_delims(struct mdoc *, int, int *, char *);
 static  int       lookup(struct mdoc *, int, int, int, const char *);  static  int       lookup(struct mdoc *, int, const char *);
   static  int       lookup_raw(struct mdoc *, const char *);
 static  int       swarn(struct mdoc *, enum mdoc_type, int, int,  static  int       swarn(struct mdoc *, enum mdoc_type, int, int,
                         const struct mdoc_node *);                          const struct mdoc_node *);
   
Line 253  mdoc_macroend(struct mdoc *mdoc)
Line 254  mdoc_macroend(struct mdoc *mdoc)
 }  }
   
 static int  static int
 lookup(struct mdoc *mdoc, int line, int pos, int from, const char *p)  lookup(struct mdoc *mdoc, int from, const char *p)
 {  {
   
           if ( ! (MDOC_PARSED & mdoc_macros[from].flags))
                   return(MDOC_MAX);
           return(lookup_raw(mdoc, p));
   }
   
   
   static int
   lookup_raw(struct mdoc *mdoc, const char *p)
   {
         int              res;          int              res;
   
         res = mdoc_hash_find(mdoc->htab, p);          if (MDOC_MAX == (res = mdoc_hash_find(mdoc->htab, p)))
         if (MDOC_PARSED & mdoc_macros[from].flags)                  return(MDOC_MAX);
           if (MDOC_CALLABLE & mdoc_macros[res].flags)
                 return(res);                  return(res);
         if (MDOC_MAX == res)  
                 return(res);  
         if ( ! mdoc_pwarn(mdoc, line, pos, EMACPARM))  
                 return(-1);  
         return(MDOC_MAX);          return(MDOC_MAX);
 }  }
   
Line 699  blk_exp_close(MACRO_PROT_ARGS)
Line 707  blk_exp_close(MACRO_PROT_ARGS)
                 if (ARGS_EOLN == c)                  if (ARGS_EOLN == c)
                         break;                          break;
   
                 if (-1 == (c = lookup(mdoc, line, lastarg, tok, p)))                  if (-1 == (c = lookup(mdoc, tok, p)))
                         return(0);                          return(0);
                 else if (MDOC_MAX != c) {                  else if (MDOC_MAX != c) {
                         if ( ! flushed) {                          if ( ! flushed) {
Line 790  in_line(MACRO_PROT_ARGS)
Line 798  in_line(MACRO_PROT_ARGS)
   
                 /* Quoted words shouldn't be looked-up. */                  /* Quoted words shouldn't be looked-up. */
   
                 c = ARGS_QWORD == w ? MDOC_MAX :                  c = ARGS_QWORD == w ? MDOC_MAX : lookup(mdoc, tok, p);
                         lookup(mdoc, line, la, tok, p);  
   
                 /*                  /*
                  * In this case, we've located a submacro and must                   * In this case, we've located a submacro and must
Line 988  blk_full(MACRO_PROT_ARGS)
Line 995  blk_full(MACRO_PROT_ARGS)
                         continue;                          continue;
                 }                  }
   
                 if (-1 == (c = lookup(mdoc, line, lastarg, tok, p)))                  if (-1 == (c = lookup(mdoc, tok, p)))
                         return(0);                          return(0);
   
                 if (MDOC_MAX == c) {                  if (MDOC_MAX == c) {
Line 1058  blk_part_imp(MACRO_PROT_ARGS)
Line 1065  blk_part_imp(MACRO_PROT_ARGS)
                 if (ARGS_EOLN == c)                  if (ARGS_EOLN == c)
                         break;                          break;
   
                 if (-1 == (c = lookup(mdoc, line, lastarg, tok, p)))                  if (-1 == (c = lookup(mdoc, tok, p)))
                         return(0);                          return(0);
                 else if (MDOC_MAX == c) {                  else if (MDOC_MAX == c) {
                         if ( ! mdoc_word_alloc(mdoc, line, lastarg, p))                          if ( ! mdoc_word_alloc(mdoc, line, lastarg, p))
Line 1162  blk_part_exp(MACRO_PROT_ARGS)
Line 1169  blk_part_exp(MACRO_PROT_ARGS)
                 if (ARGS_EOLN == c)                  if (ARGS_EOLN == c)
                         break;                          break;
   
                 if (-1 == (c = lookup(mdoc, line, lastarg, tok, p)))                  if (-1 == (c = lookup(mdoc, tok, p)))
                         return(0);                          return(0);
                 else if (MDOC_MAX != c) {                  else if (MDOC_MAX != c) {
                         if ( ! flushed) {                          if ( ! flushed) {
Line 1282  in_line_argn(MACRO_PROT_ARGS)
Line 1289  in_line_argn(MACRO_PROT_ARGS)
                 if (ARGS_EOLN == c)                  if (ARGS_EOLN == c)
                         break;                          break;
   
                 if (-1 == (c = lookup(mdoc, line, lastarg, tok, p)))                  if (-1 == (c = lookup(mdoc, tok, p)))
                         return(0);                          return(0);
                 else if (MDOC_MAX != c) {                  else if (MDOC_MAX != c) {
                         if ( ! flushed && ! rew_elem(mdoc, tok))                          if ( ! flushed && ! rew_elem(mdoc, tok))
Line 1360  in_line_eoln(MACRO_PROT_ARGS)
Line 1367  in_line_eoln(MACRO_PROT_ARGS)
                 if (ARGS_EOLN == w)                  if (ARGS_EOLN == w)
                         break;                          break;
   
                 c = ARGS_QWORD == w ? MDOC_MAX :                  c = ARGS_QWORD == w ? MDOC_MAX : lookup(mdoc, tok, p);
                         lookup(mdoc, line, la, tok, p);  
   
                 if (MDOC_MAX != c && -1 != c) {                  if (MDOC_MAX != c && -1 != c) {
                         if ( ! rew_elem(mdoc, tok))                          if ( ! rew_elem(mdoc, tok))

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.28

CVSweb