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

Diff for /mandoc/man_term.c between version 1.87 and 1.88

version 1.87, 2010/12/06 13:53:07 version 1.88, 2010/12/06 14:04:11
Line 80  static void    print_man_foot(struct termp *, const vo
Line 80  static void    print_man_foot(struct termp *, const vo
 static  void              print_bvspace(struct termp *,  static  void              print_bvspace(struct termp *,
                                 const struct man_node *);                                  const struct man_node *);
   
   static  int               pre_alternate(DECL_ARGS);
 static  int               pre_B(DECL_ARGS);  static  int               pre_B(DECL_ARGS);
 static  int               pre_BI(DECL_ARGS);  
 static  int               pre_HP(DECL_ARGS);  static  int               pre_HP(DECL_ARGS);
 static  int               pre_I(DECL_ARGS);  static  int               pre_I(DECL_ARGS);
 static  int               pre_IP(DECL_ARGS);  static  int               pre_IP(DECL_ARGS);
 static  int               pre_PP(DECL_ARGS);  static  int               pre_PP(DECL_ARGS);
 static  int               pre_RB(DECL_ARGS);  
 static  int               pre_RI(DECL_ARGS);  
 static  int               pre_RS(DECL_ARGS);  static  int               pre_RS(DECL_ARGS);
 static  int               pre_SH(DECL_ARGS);  static  int               pre_SH(DECL_ARGS);
 static  int               pre_SS(DECL_ARGS);  static  int               pre_SS(DECL_ARGS);
Line 117  static const struct termact termacts[MAN_MAX] = {
Line 115  static const struct termact termacts[MAN_MAX] = {
         { pre_HP, post_HP, 0 }, /* HP */          { pre_HP, post_HP, 0 }, /* HP */
         { NULL, NULL, 0 }, /* SM */          { NULL, NULL, 0 }, /* SM */
         { pre_B, NULL, 0 }, /* SB */          { pre_B, NULL, 0 }, /* SB */
         { pre_BI, NULL, 0 }, /* BI */          { pre_alternate, NULL, 0 }, /* BI */
         { pre_BI, NULL, 0 }, /* IB */          { pre_alternate, NULL, 0 }, /* IB */
         { pre_RB, NULL, 0 }, /* BR */          { pre_alternate, NULL, 0 }, /* BR */
         { pre_RB, NULL, 0 }, /* RB */          { pre_alternate, NULL, 0 }, /* RB */
         { NULL, NULL, 0 }, /* R */          { NULL, NULL, 0 }, /* R */
         { pre_B, NULL, 0 }, /* B */          { pre_B, NULL, 0 }, /* B */
         { pre_I, NULL, 0 }, /* I */          { pre_I, NULL, 0 }, /* I */
         { pre_RI, NULL, 0 }, /* IR */          { pre_alternate, NULL, 0 }, /* IR */
         { pre_RI, NULL, 0 }, /* RI */          { pre_alternate, NULL, 0 }, /* RI */
         { NULL, NULL, MAN_NOTEXT }, /* na */          { NULL, NULL, MAN_NOTEXT }, /* na */
         { pre_I, NULL, 0 }, /* i */          { pre_I, NULL, 0 }, /* i */
         { pre_sp, NULL, MAN_NOTEXT }, /* sp */          { pre_sp, NULL, MAN_NOTEXT }, /* sp */
Line 250  pre_literal(DECL_ARGS)
Line 248  pre_literal(DECL_ARGS)
 {  {
   
         term_newln(p);          term_newln(p);
         switch (n->tok) {  
         case (MAN_nf):          if (MAN_nf == n->tok)
                 mt->fl |= MANT_LITERAL;                  mt->fl |= MANT_LITERAL;
                 break;          else
         default:  
                 mt->fl &= ~MANT_LITERAL;                  mt->fl &= ~MANT_LITERAL;
                 break;  
         }  
   
         return(1);          return(1);
 }  }
   
   
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  static int
 pre_RB(DECL_ARGS)  pre_alternate(DECL_ARGS)
 {  {
         const struct man_node *nn;          enum termfont            font[2];
         int              i;          const struct man_node   *nn;
           int                      savelit, i;
   
         for (i = 0, nn = n->child; nn; nn = nn->next, i++) {          switch (n->tok) {
                 if (i % 2 && MAN_RB == n->tok)          case (MAN_RB):
                         term_fontrepl(p, TERMFONT_BOLD);                  font[0] = TERMFONT_NONE;
                 else if ( ! (i % 2) && MAN_RB != n->tok)                  font[1] = TERMFONT_BOLD;
                         term_fontrepl(p, TERMFONT_BOLD);                  break;
                 else          case (MAN_RI):
                         term_fontrepl(p, TERMFONT_NONE);                  font[0] = TERMFONT_NONE;
                   font[1] = TERMFONT_UNDER;
                 if (i > 0)                  break;
                         p->flags |= TERMP_NOSPACE;          case (MAN_BR):
                   font[0] = TERMFONT_BOLD;
                 print_man_node(p, mt, nn, m);                  font[1] = TERMFONT_NONE;
                   break;
           case (MAN_BI):
                   font[0] = TERMFONT_BOLD;
                   font[1] = TERMFONT_UNDER;
                   break;
           case (MAN_IR):
                   font[0] = TERMFONT_UNDER;
                   font[1] = TERMFONT_NONE;
                   break;
           case (MAN_IB):
                   font[0] = TERMFONT_UNDER;
                   font[1] = TERMFONT_BOLD;
                   break;
           default:
                   abort();
         }          }
         return(0);  
 }  
   
           savelit = MANT_LITERAL & mt->fl;
           mt->fl &= ~MANT_LITERAL;
   
 /* ARGSUSED */          for (i = 0, nn = n->child; nn; nn = nn->next, i = 1 - i) {
 static int                  term_fontrepl(p, font[i]);
 pre_RI(DECL_ARGS)                  if (savelit && NULL == nn->next)
 {                          mt->fl |= MANT_LITERAL;
         const struct man_node *nn;  
         int              i;  
   
         for (i = 0, nn = n->child; nn; nn = nn->next, i++) {  
                 if (i % 2 && MAN_RI == n->tok)  
                         term_fontrepl(p, TERMFONT_UNDER);  
                 else if ( ! (i % 2) && MAN_RI != n->tok)  
                         term_fontrepl(p, TERMFONT_UNDER);  
                 else  
                         term_fontrepl(p, TERMFONT_NONE);  
   
                 if (i > 0)  
                         p->flags |= TERMP_NOSPACE;  
   
                 print_man_node(p, mt, nn, m);                  print_man_node(p, mt, nn, m);
         }                  if (nn->next)
         return(0);  
 }  
   
   
 /* ARGSUSED */  
 static int  
 pre_BI(DECL_ARGS)  
 {  
         const struct man_node   *nn;  
         int                      i;  
   
         for (i = 0, nn = n->child; nn; nn = nn->next, i++) {  
                 if (i % 2 && MAN_BI == n->tok)  
                         term_fontrepl(p, TERMFONT_UNDER);  
                 else if (i % 2)  
                         term_fontrepl(p, TERMFONT_BOLD);  
                 else if (MAN_BI == n->tok)  
                         term_fontrepl(p, TERMFONT_BOLD);  
                 else  
                         term_fontrepl(p, TERMFONT_UNDER);  
   
                 if (i)  
                         p->flags |= TERMP_NOSPACE;                          p->flags |= TERMP_NOSPACE;
   
                 print_man_node(p, mt, nn, m);  
         }          }
   
         return(0);          return(0);
 }  }
   
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  static int
 pre_B(DECL_ARGS)  pre_B(DECL_ARGS)
Line 346  pre_B(DECL_ARGS)
Line 317  pre_B(DECL_ARGS)
         term_fontrepl(p, TERMFONT_BOLD);          term_fontrepl(p, TERMFONT_BOLD);
         return(1);          return(1);
 }  }
   
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  static int

Legend:
Removed from v.1.87  
changed lines
  Added in v.1.88

CVSweb