[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.75 and 1.82

version 1.75, 2010/05/31 10:28:04 version 1.82, 2010/06/27 15:52:41
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>   * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@bsd.lv>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 607  rew_sub(enum mdoc_type t, struct mdoc *m, 
Line 607  rew_sub(enum mdoc_type t, struct mdoc *m, 
         if ( ! rew_last(m, n))          if ( ! rew_last(m, n))
                 return(0);                  return(0);
   
 #ifdef  UGLY  
         /*          /*
          * The current block extends an enclosing block beyond a line           * The current block extends an enclosing block beyond a line
          * break.  Now that the current block ends, close the enclosing           * break.  Now that the current block ends, close the enclosing
Line 620  rew_sub(enum mdoc_type t, struct mdoc *m, 
Line 619  rew_sub(enum mdoc_type t, struct mdoc *m, 
                 if ( ! mdoc_body_alloc(m, n->line, n->pos, n->tok))                  if ( ! mdoc_body_alloc(m, n->line, n->pos, n->tok))
                         return(0);                          return(0);
         }          }
 #endif  
   
         return(1);          return(1);
 }  }
Line 936  blk_full(MACRO_PROT_ARGS)
Line 934  blk_full(MACRO_PROT_ARGS)
         struct mdoc_arg  *arg;          struct mdoc_arg  *arg;
         struct mdoc_node *head; /* save of head macro */          struct mdoc_node *head; /* save of head macro */
         struct mdoc_node *body; /* save of body macro */          struct mdoc_node *body; /* save of body macro */
 #ifdef  UGLY  
         struct mdoc_node *n;          struct mdoc_node *n;
 #endif  
         enum mdoc_type    mtt;          enum mdoc_type    mtt;
         enum mdoct        ntok;          enum mdoct        ntok;
         enum margserr     ac, lac;          enum margserr     ac, lac;
Line 1118  blk_full(MACRO_PROT_ARGS)
Line 1114  blk_full(MACRO_PROT_ARGS)
         /* If we've already opened our body, exit now. */          /* If we've already opened our body, exit now. */
   
         if (NULL != body)          if (NULL != body)
                 return(1);                  goto out;
   
 #ifdef  UGLY  
         /*          /*
          * If there is an open (i.e., unvalidated) sub-block requiring           * If there is an open (i.e., unvalidated) sub-block requiring
          * explicit close-out, postpone switching the current block from           * explicit close-out, postpone switching the current block from
Line 1136  blk_full(MACRO_PROT_ARGS)
Line 1131  blk_full(MACRO_PROT_ARGS)
                         return(1);                          return(1);
                 }                  }
         }          }
 #endif  
   
         /* Close out scopes to remain in a consistent state. */          /* Close out scopes to remain in a consistent state. */
   
Line 1145  blk_full(MACRO_PROT_ARGS)
Line 1139  blk_full(MACRO_PROT_ARGS)
         if ( ! mdoc_body_alloc(m, line, ppos, tok))          if ( ! mdoc_body_alloc(m, line, ppos, tok))
                 return(0);                  return(0);
   
   out:
           if ( ! (MDOC_FREECOL & m->flags))
                   return(1);
   
           if ( ! rew_sub(MDOC_BODY, m, tok, line, ppos))
                   return(0);
           if ( ! rew_sub(MDOC_BLOCK, m, tok, line, ppos))
                   return(0);
   
           m->flags &= ~MDOC_FREECOL;
         return(1);          return(1);
 }  }
   
Line 1673  phrase(struct mdoc *m, int line, int ppos, char *buf)
Line 1677  phrase(struct mdoc *m, int line, int ppos, char *buf)
 }  }
   
   
   /* ARGSUSED */
 static int  static int
 phrase_ta(MACRO_PROT_ARGS)  phrase_ta(MACRO_PROT_ARGS)
 {  {
         int               la;          int               la;
         enum mdoct        ntok;          enum mdoct        ntok;
         enum margserr     ac;          enum margserr     ac;
         struct mdoc_node *n;  
         char             *p;          char             *p;
   
         /*          /*
Line 1687  phrase_ta(MACRO_PROT_ARGS)
Line 1691  phrase_ta(MACRO_PROT_ARGS)
          * it should simply error out with ARGSLOST.           * it should simply error out with ARGSLOST.
          */           */
   
         n = m->last;  
         if ( ! rew_sub(MDOC_BODY, m, MDOC_It, line, ppos))          if ( ! rew_sub(MDOC_BODY, m, MDOC_It, line, ppos))
                 return(0);                  return(0);
   
         /*  
          * FIXME: this is necessary in bogus constructions like  
          *  .Bl -column foo bar  
          *  .Sy foo Ta bar  
          * It is, however, an ugly way to do it.  
          *  
          * XXX; remove this when the above construct builds an implied  
          * `It' marker.  
          */  
         if (NULL == m->last ||  
                         MDOC_BODY != m->last->type ||  
                         MDOC_It != m->last->tok) {  
                 swarn(m, tok, line, ppos, n);  
                 return(0);  
         }  
   
         if ( ! mdoc_body_alloc(m, line, ppos, MDOC_It))          if ( ! mdoc_body_alloc(m, line, ppos, MDOC_It))
                 return(0);                  return(0);
   

Legend:
Removed from v.1.75  
changed lines
  Added in v.1.82

CVSweb