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

Diff for /mandoc/mdoc_term.c between version 1.44 and 1.48

version 1.44, 2009/07/17 10:56:57 version 1.48, 2009/07/20 15:05:34
Line 164  static int   termp_rs_pre(DECL_ARGS);
Line 164  static int   termp_rs_pre(DECL_ARGS);
 static  int       termp_rv_pre(DECL_ARGS);  static  int       termp_rv_pre(DECL_ARGS);
 static  int       termp_sh_pre(DECL_ARGS);  static  int       termp_sh_pre(DECL_ARGS);
 static  int       termp_sm_pre(DECL_ARGS);  static  int       termp_sm_pre(DECL_ARGS);
   static  int       termp_sp_pre(DECL_ARGS);
 static  int       termp_sq_pre(DECL_ARGS);  static  int       termp_sq_pre(DECL_ARGS);
 static  int       termp_ss_pre(DECL_ARGS);  static  int       termp_ss_pre(DECL_ARGS);
 static  int       termp_sx_pre(DECL_ARGS);  static  int       termp_sx_pre(DECL_ARGS);
Line 294  static const struct termact termacts[MDOC_MAX] = {
Line 295  static const struct termact termacts[MDOC_MAX] = {
         { termp_xx_pre, NULL }, /* Dx */          { termp_xx_pre, NULL }, /* Dx */
         { NULL, NULL }, /* %Q */          { NULL, NULL }, /* %Q */
         { termp_br_pre, NULL }, /* br */          { termp_br_pre, NULL }, /* br */
         { NULL, NULL }, /* sp */          { termp_sp_pre, NULL }, /* sp */
 };  };
   
 #ifdef __linux__  #ifdef __linux__
Line 363  print_node(DECL_ARGS)
Line 364  print_node(DECL_ARGS)
         npair.flag = 0;          npair.flag = 0;
         npair.count = 0;          npair.count = 0;
   
           /*
            * Note on termpair.  This allows a pre function to set a termp
            * flag that is automatically unset after the body, but before
            * the post function.  Thus, if a pre uses a termpair flag, it
            * must be reapplied in the post for use.
            */
   
         if (MDOC_TEXT != node->type) {          if (MDOC_TEXT != node->type) {
                 if (termacts[node->tok].pre)                  if (termacts[node->tok].pre)
                         if ( ! (*termacts[node->tok].pre)(p, &npair, meta, node))                          if ( ! (*termacts[node->tok].pre)(p, &npair, meta, node))
Line 377  print_node(DECL_ARGS)
Line 385  print_node(DECL_ARGS)
         if (dochild && node->child)          if (dochild && node->child)
                 print_body(p, &npair, meta, node->child);                  print_body(p, &npair, meta, node->child);
   
           p->flags &= ~npair.flag;
   
         /* Post-processing. */          /* Post-processing. */
   
         if (MDOC_TEXT != node->type)          if (MDOC_TEXT != node->type)
Line 385  print_node(DECL_ARGS)
Line 395  print_node(DECL_ARGS)
   
         p->offset = offset;          p->offset = offset;
         p->rmargin = rmargin;          p->rmargin = rmargin;
         p->flags &= ~npair.flag;  
 }  }
   
   
Line 663  fmt_block_vspace(struct termp *p, 
Line 672  fmt_block_vspace(struct termp *p, 
   
         if (arg_hasattr(MDOC_Compact, bl))          if (arg_hasattr(MDOC_Compact, bl))
                 return(1);                  return(1);
           /* XXX - not documented! */
           else if (arg_hasattr(MDOC_Column, bl))
                   return(1);
   
         for (n = node; n; n = n->parent) {          for (n = node; n; n = n->parent) {
                 if (MDOC_BLOCK != n->type)                  if (MDOC_BLOCK != n->type)
Line 1560  termp_bd_pre(DECL_ARGS)
Line 1572  termp_bd_pre(DECL_ARGS)
          * Ew.           * Ew.
          */           */
   
         p->flags |= TERMP_LITERAL;  
         ln = node->child ? node->child->line : 0;          ln = node->child ? node->child->line : 0;
   
         for (node = node->child; node; node = node->next) {          for (node = node->child; node; node = node->next) {
Line 1583  termp_bd_post(DECL_ARGS)
Line 1594  termp_bd_post(DECL_ARGS)
   
         if (MDOC_BODY != node->type)          if (MDOC_BODY != node->type)
                 return;                  return;
   
         term_flushln(p);          term_flushln(p);
         p->flags &= ~TERMP_LITERAL;  
         p->flags |= TERMP_NOSPACE;  
 }  }
   
   
Line 1813  static void
Line 1821  static void
 termp_in_post(DECL_ARGS)  termp_in_post(DECL_ARGS)
 {  {
   
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE | ttypes[TTYPE_INCLUDE];
         term_word(p, ">");          term_word(p, ">");
           p->flags &= ~ttypes[TTYPE_INCLUDE];
   
         if (SEC_SYNOPSIS != node->sec)          if (SEC_SYNOPSIS != node->sec)
                 return;                  return;
Line 1828  termp_in_post(DECL_ARGS)
Line 1837  termp_in_post(DECL_ARGS)
          */           */
         if (node->next && MDOC_In != node->next->tok)          if (node->next && MDOC_In != node->next->tok)
                 term_vspace(p);                  term_vspace(p);
   }
   
   
   /* ARGSUSED */
   static int
   termp_sp_pre(DECL_ARGS)
   {
           int              i, len;
   
           if (NULL == node->child) {
                   term_vspace(p);
                   return(0);
           }
   
           len = atoi(node->child->string);
           if (0 == len)
                   term_newln(p);
           for (i = 0; i < len; i++)
                   term_vspace(p);
   
           return(0);
 }  }
   
   

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.48

CVSweb