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

Diff for /mandoc/man_macro.c between version 1.46 and 1.55

version 1.46, 2010/05/17 22:11:42 version 1.55, 2011/01/12 16:55:22
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>   * Copyright (c) 2008, 2009, 2010 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 69  const struct man_macro __man_macros[MAN_MAX] = {
Line 69  const struct man_macro __man_macros[MAN_MAX] = {
         { in_line_eoln, 0 }, /* IR */          { in_line_eoln, 0 }, /* IR */
         { in_line_eoln, 0 }, /* RI */          { in_line_eoln, 0 }, /* RI */
         { in_line_eoln, MAN_NSCOPED }, /* na */          { in_line_eoln, MAN_NSCOPED }, /* na */
         { in_line_eoln, 0 }, /* i */  
         { in_line_eoln, MAN_NSCOPED }, /* sp */          { in_line_eoln, MAN_NSCOPED }, /* sp */
         { in_line_eoln, 0 }, /* nf */          { in_line_eoln, 0 }, /* nf */
         { in_line_eoln, 0 }, /* fi */          { in_line_eoln, 0 }, /* fi */
         { in_line_eoln, 0 }, /* r */  
         { blk_close, 0 }, /* RE */          { blk_close, 0 }, /* RE */
         { blk_exp, MAN_EXPLICIT }, /* RS */          { blk_exp, MAN_EXPLICIT }, /* RS */
         { in_line_eoln, 0 }, /* DT */          { in_line_eoln, 0 }, /* DT */
         { in_line_eoln, 0 }, /* UC */          { in_line_eoln, 0 }, /* UC */
         { in_line_eoln, 0 }, /* PD */          { in_line_eoln, 0 }, /* PD */
         { in_line_eoln, MAN_NSCOPED }, /* Sp */  
         { in_line_eoln, 0 }, /* Vb */  
         { in_line_eoln, 0 }, /* Ve */  
         { in_line_eoln, 0 }, /* AT */          { in_line_eoln, 0 }, /* AT */
           { in_line_eoln, 0 }, /* in */
           { in_line_eoln, 0 }, /* ft */
 };  };
   
 const   struct man_macro * const man_macros = __man_macros;  const   struct man_macro * const man_macros = __man_macros;
Line 110  rew_warn(struct man *m, struct man_node *n, enum mando
Line 107  rew_warn(struct man *m, struct man_node *n, enum mando
  * will be used if an explicit block scope is being closed out.   * will be used if an explicit block scope is being closed out.
  */   */
 int  int
 man_unscope(struct man *m, const struct man_node *n,  man_unscope(struct man *m, const struct man_node *to,
                 enum mandocerr er)                  enum mandocerr er)
 {  {
           struct man_node *n;
   
         assert(n);          assert(to);
   
         /* LINTED */          /* LINTED */
         while (m->last != n) {          while (m->last != to) {
                   /*
                    * Save the parent here, because we may delete the
                    * m->last node in the post-validation phase and reset
                    * it to m->last->parent, causing a step in the closing
                    * out to be lost.
                    */
                   n = m->last->parent;
                 if ( ! rew_warn(m, m->last, er))                  if ( ! rew_warn(m, m->last, er))
                         return(0);                          return(0);
                 if ( ! man_valid_post(m))                  if ( ! man_valid_post(m))
                         return(0);                          return(0);
                 if ( ! man_action_post(m))                  m->last = n;
                         return(0);  
                 m->last = m->last->parent;  
                 assert(m->last);                  assert(m->last);
         }          }
   
Line 132  man_unscope(struct man *m, const struct man_node *n, 
Line 135  man_unscope(struct man *m, const struct man_node *n, 
                 return(0);                  return(0);
         if ( ! man_valid_post(m))          if ( ! man_valid_post(m))
                 return(0);                  return(0);
         if ( ! man_action_post(m))  
                 return(0);  
   
         m->next = MAN_ROOT == m->last->type ?          m->next = MAN_ROOT == m->last->type ?
                 MAN_NEXT_CHILD : MAN_NEXT_SIBLING;                  MAN_NEXT_CHILD : MAN_NEXT_SIBLING;
Line 290  blk_close(MACRO_PROT_ARGS)
Line 291  blk_close(MACRO_PROT_ARGS)
 }  }
   
   
   /* ARGSUSED */
 int  int
 blk_exp(MACRO_PROT_ARGS)  blk_exp(MACRO_PROT_ARGS)
 {  {
Line 341  blk_exp(MACRO_PROT_ARGS)
Line 343  blk_exp(MACRO_PROT_ARGS)
  * scopes, such as `SH' closing out an `SS', are defined in the rew   * scopes, such as `SH' closing out an `SS', are defined in the rew
  * routines.   * routines.
  */   */
   /* ARGSUSED */
 int  int
 blk_imp(MACRO_PROT_ARGS)  blk_imp(MACRO_PROT_ARGS)
 {  {
Line 398  blk_imp(MACRO_PROT_ARGS)
Line 401  blk_imp(MACRO_PROT_ARGS)
 }  }
   
   
   /* ARGSUSED */
 int  int
 in_line_eoln(MACRO_PROT_ARGS)  in_line_eoln(MACRO_PROT_ARGS)
 {  {
Line 454  in_line_eoln(MACRO_PROT_ARGS)
Line 458  in_line_eoln(MACRO_PROT_ARGS)
                         break;                          break;
                 if ( ! man_valid_post(m))                  if ( ! man_valid_post(m))
                         return(0);                          return(0);
                 if ( ! man_action_post(m))  
                         return(0);  
         }          }
   
         assert(m->last);          assert(m->last);
Line 465  in_line_eoln(MACRO_PROT_ARGS)
Line 467  in_line_eoln(MACRO_PROT_ARGS)
          */           */
   
         if (m->last->type != MAN_ROOT && ! man_valid_post(m))          if (m->last->type != MAN_ROOT && ! man_valid_post(m))
                 return(0);  
         if (m->last->type != MAN_ROOT && ! man_action_post(m))  
                 return(0);                  return(0);
   
         m->next = MAN_ROOT == m->last->type ?          m->next = MAN_ROOT == m->last->type ?

Legend:
Removed from v.1.46  
changed lines
  Added in v.1.55

CVSweb