[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.205 and 1.212

version 1.205, 2010/12/25 23:27:50 version 1.212, 2011/01/25 15:28:56
Line 73  static void   termp_an_post(DECL_ARGS);
Line 73  static void   termp_an_post(DECL_ARGS);
 static  void      termp_bd_post(DECL_ARGS);  static  void      termp_bd_post(DECL_ARGS);
 static  void      termp_bk_post(DECL_ARGS);  static  void      termp_bk_post(DECL_ARGS);
 static  void      termp_bl_post(DECL_ARGS);  static  void      termp_bl_post(DECL_ARGS);
 static  void      termp_bx_post(DECL_ARGS);  
 static  void      termp_d1_post(DECL_ARGS);  static  void      termp_d1_post(DECL_ARGS);
 static  void      termp_fo_post(DECL_ARGS);  static  void      termp_fo_post(DECL_ARGS);
 static  void      termp_in_post(DECL_ARGS);  static  void      termp_in_post(DECL_ARGS);
Line 95  static int   termp_bk_pre(DECL_ARGS);
Line 94  static int   termp_bk_pre(DECL_ARGS);
 static  int       termp_bl_pre(DECL_ARGS);  static  int       termp_bl_pre(DECL_ARGS);
 static  int       termp_bold_pre(DECL_ARGS);  static  int       termp_bold_pre(DECL_ARGS);
 static  int       termp_bt_pre(DECL_ARGS);  static  int       termp_bt_pre(DECL_ARGS);
   static  int       termp_bx_pre(DECL_ARGS);
 static  int       termp_cd_pre(DECL_ARGS);  static  int       termp_cd_pre(DECL_ARGS);
 static  int       termp_d1_pre(DECL_ARGS);  static  int       termp_d1_pre(DECL_ARGS);
 static  int       termp_ex_pre(DECL_ARGS);  static  int       termp_ex_pre(DECL_ARGS);
Line 187  static const struct termact termacts[MDOC_MAX] = {
Line 187  static const struct termact termacts[MDOC_MAX] = {
         { termp_quote_pre, termp_quote_post }, /* Bo */          { termp_quote_pre, termp_quote_post }, /* Bo */
         { termp_quote_pre, termp_quote_post }, /* Bq */          { termp_quote_pre, termp_quote_post }, /* Bq */
         { termp_xx_pre, NULL }, /* Bsx */          { termp_xx_pre, NULL }, /* Bsx */
         { NULL, termp_bx_post }, /* Bx */          { termp_bx_pre, NULL }, /* Bx */
         { NULL, NULL }, /* Db */          { NULL, NULL }, /* Db */
         { NULL, NULL }, /* Dc */          { NULL, NULL }, /* Dc */
         { termp_quote_pre, termp_quote_post }, /* Do */          { termp_quote_pre, termp_quote_post }, /* Do */
Line 312  print_mdoc_node(DECL_ARGS)
Line 312  print_mdoc_node(DECL_ARGS)
   
         memset(&npair, 0, sizeof(struct termpair));          memset(&npair, 0, sizeof(struct termpair));
         npair.ppair = pair;          npair.ppair = pair;
   
           switch (n->type) {
           case (MDOC_TEXT):
                   if (' ' == *n->string && MDOC_LINE & n->flags)
                           term_newln(p);
                   term_word(p, n->string);
                   break;
           case (MDOC_TBL):
                   term_tbl(p, n->span);
                   break;
           default:
                   if (termacts[n->tok].pre && ENDBODY_NOT == n->end)
                           chld = (*termacts[n->tok].pre)
                                   (p, &npair, m, n);
                   break;
           }
   
         if (MDOC_TEXT == n->type)  
                 term_word(p, n->string);  
         else if (termacts[n->tok].pre && ENDBODY_NOT == n->end)  
                 chld = (*termacts[n->tok].pre)(p, &npair, m, n);  
   
         /*          /*
          * Keeps only work until the end of a line.  If a keep was           * Keeps only work until the end of a line.  If a keep was
          * invoked in a prior line, revert it to PREKEEP.           * invoked in a prior line, revert it to PREKEEP.
Line 353  print_mdoc_node(DECL_ARGS)
Line 364  print_mdoc_node(DECL_ARGS)
   
         term_fontpopq(p, font);          term_fontpopq(p, font);
   
         if (MDOC_TEXT != n->type && termacts[n->tok].post &&          switch (n->type) {
                         ! (MDOC_ENDED & n->flags)) {          case (MDOC_TEXT):
                   break;
           case (MDOC_TBL):
                   break;
           default:
                   if ( ! termacts[n->tok].post || MDOC_ENDED & n->flags)
                           break;
                 (void)(*termacts[n->tok].post)(p, &npair, m, n);                  (void)(*termacts[n->tok].post)(p, &npair, m, n);
   
                 /*                  /*
Line 372  print_mdoc_node(DECL_ARGS)
Line 389  print_mdoc_node(DECL_ARGS)
                  */                   */
                 if (ENDBODY_NOSPACE == n->end)                  if (ENDBODY_NOSPACE == n->end)
                         p->flags |= TERMP_NOSPACE;                          p->flags |= TERMP_NOSPACE;
                   break;
         }          }
   
         if (MDOC_EOS & n->flags)          if (MDOC_EOS & n->flags)
Line 1583  termp_bd_pre(DECL_ARGS)
Line 1601  termp_bd_pre(DECL_ARGS)
                 return(1);                  return(1);
   
         tabwidth = p->tabwidth;          tabwidth = p->tabwidth;
         p->tabwidth = term_len(p, 8);          if (DISP_literal == n->norm->Bd.type)
                   p->tabwidth = term_len(p, 8);
   
         rm = p->rmargin;          rm = p->rmargin;
         rmax = p->maxrmargin;          rmax = p->maxrmargin;
         p->rmargin = p->maxrmargin = TERM_MAXMARGIN;          p->rmargin = p->maxrmargin = TERM_MAXMARGIN;
Line 1654  termp_bd_post(DECL_ARGS)
Line 1674  termp_bd_post(DECL_ARGS)
   
   
 /* ARGSUSED */  /* ARGSUSED */
 static void  static int
 termp_bx_post(DECL_ARGS)  termp_bx_pre(DECL_ARGS)
 {  {
           char             buf[3];
   
         if (n->child)          if (NULL != (n = n->child)) {
                   term_word(p, n->string);
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
         term_word(p, "BSD");                  term_word(p, "BSD");
           } else {
                   term_word(p, "BSD");
                   return(0);
           }
   
           if (NULL != (n = n->next)) {
                   buf[0] = '-';
                   buf[1] = toupper((unsigned char)*n->string);
                   buf[2] = '\0';
   
                   p->flags |= TERMP_NOSPACE;
                   term_word(p, buf);
                   p->flags |= TERMP_NOSPACE;
                   term_word(p, n->string + 1);
           }
   
           return(0);
 }  }
   
   
Line 2149  termp__t_post(DECL_ARGS)
Line 2188  termp__t_post(DECL_ARGS)
          * us instead of underlining us (for disambiguation).           * us instead of underlining us (for disambiguation).
          */           */
         if (n->parent && MDOC_Rs == n->parent->tok &&          if (n->parent && MDOC_Rs == n->parent->tok &&
                         n->parent->norm->Rs.child_J)                          n->parent->norm->Rs.quote_T)
                 termp_quote_post(p, pair, m, n);                  termp_quote_post(p, pair, m, n);
   
         termp____post(p, pair, m, n);          termp____post(p, pair, m, n);
Line 2165  termp__t_pre(DECL_ARGS)
Line 2204  termp__t_pre(DECL_ARGS)
          * us instead of underlining us (for disambiguation).           * us instead of underlining us (for disambiguation).
          */           */
         if (n->parent && MDOC_Rs == n->parent->tok &&          if (n->parent && MDOC_Rs == n->parent->tok &&
                         n->parent->norm->Rs.child_J)                          n->parent->norm->Rs.quote_T)
                 return(termp_quote_pre(p, pair, m, n));                  return(termp_quote_pre(p, pair, m, n));
   
         term_fontpush(p, TERMFONT_UNDER);          term_fontpush(p, TERMFONT_UNDER);

Legend:
Removed from v.1.205  
changed lines
  Added in v.1.212

CVSweb