[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.188 and 1.200

version 1.188, 2010/09/26 09:16:02 version 1.200, 2010/12/19 12:11:42
Line 81  static void   termp_lb_post(DECL_ARGS);
Line 81  static void   termp_lb_post(DECL_ARGS);
 static  void      termp_nm_post(DECL_ARGS);  static  void      termp_nm_post(DECL_ARGS);
 static  void      termp_pf_post(DECL_ARGS);  static  void      termp_pf_post(DECL_ARGS);
 static  void      termp_quote_post(DECL_ARGS);  static  void      termp_quote_post(DECL_ARGS);
 static  void      termp_quote_post(DECL_ARGS);  
 static  void      termp_sh_post(DECL_ARGS);  static  void      termp_sh_post(DECL_ARGS);
 static  void      termp_ss_post(DECL_ARGS);  static  void      termp_ss_post(DECL_ARGS);
   
Line 103  static int   termp_fl_pre(DECL_ARGS);
Line 102  static int   termp_fl_pre(DECL_ARGS);
 static  int       termp_fn_pre(DECL_ARGS);  static  int       termp_fn_pre(DECL_ARGS);
 static  int       termp_fo_pre(DECL_ARGS);  static  int       termp_fo_pre(DECL_ARGS);
 static  int       termp_ft_pre(DECL_ARGS);  static  int       termp_ft_pre(DECL_ARGS);
   static  int       termp_igndelim_pre(DECL_ARGS);
 static  int       termp_in_pre(DECL_ARGS);  static  int       termp_in_pre(DECL_ARGS);
 static  int       termp_it_pre(DECL_ARGS);  static  int       termp_it_pre(DECL_ARGS);
 static  int       termp_li_pre(DECL_ARGS);  static  int       termp_li_pre(DECL_ARGS);
Line 110  static int   termp_lk_pre(DECL_ARGS);
Line 110  static int   termp_lk_pre(DECL_ARGS);
 static  int       termp_nd_pre(DECL_ARGS);  static  int       termp_nd_pre(DECL_ARGS);
 static  int       termp_nm_pre(DECL_ARGS);  static  int       termp_nm_pre(DECL_ARGS);
 static  int       termp_ns_pre(DECL_ARGS);  static  int       termp_ns_pre(DECL_ARGS);
 static  int       termp_pf_pre(DECL_ARGS);  
 static  int       termp_quote_pre(DECL_ARGS);  static  int       termp_quote_pre(DECL_ARGS);
 static  int       termp_rs_pre(DECL_ARGS);  static  int       termp_rs_pre(DECL_ARGS);
 static  int       termp_rv_pre(DECL_ARGS);  static  int       termp_rv_pre(DECL_ARGS);
Line 197  static const struct termact termacts[MDOC_MAX] = {
Line 196  static const struct termact termacts[MDOC_MAX] = {
         { NULL, NULL }, /* Eo */          { NULL, NULL }, /* Eo */
         { termp_xx_pre, NULL }, /* Fx */          { termp_xx_pre, NULL }, /* Fx */
         { termp_bold_pre, NULL }, /* Ms */          { termp_bold_pre, NULL }, /* Ms */
         { NULL, NULL }, /* No */          { termp_igndelim_pre, NULL }, /* No */
         { termp_ns_pre, NULL }, /* Ns */          { termp_ns_pre, NULL }, /* Ns */
         { termp_xx_pre, NULL }, /* Nx */          { termp_xx_pre, NULL }, /* Nx */
         { termp_xx_pre, NULL }, /* Ox */          { termp_xx_pre, NULL }, /* Ox */
         { NULL, NULL }, /* Pc */          { NULL, NULL }, /* Pc */
         { termp_pf_pre, termp_pf_post }, /* Pf */          { termp_igndelim_pre, termp_pf_post }, /* Pf */
         { termp_quote_pre, termp_quote_post }, /* Po */          { termp_quote_pre, termp_quote_post }, /* Po */
         { termp_quote_pre, termp_quote_post }, /* Pq */          { termp_quote_pre, termp_quote_post }, /* Pq */
         { NULL, NULL }, /* Qc */          { NULL, NULL }, /* Qc */
Line 320  print_mdoc_node(DECL_ARGS)
Line 319  print_mdoc_node(DECL_ARGS)
         /*          /*
          * 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.
            *
            * Also let SYNPRETTY sections behave as if they were wrapped
            * in a `Bk' block.
          */           */
   
         if (TERMP_KEEP & p->flags) {          if (TERMP_KEEP & p->flags || MDOC_SYNPRETTY & n->flags) {
                 if (n->prev && n->prev->line != n->line) {                  if (n->prev && n->prev->line != n->line) {
                         p->flags &= ~TERMP_KEEP;                          p->flags &= ~TERMP_KEEP;
                         p->flags |= TERMP_PREKEEP;                          p->flags |= TERMP_PREKEEP;
Line 334  print_mdoc_node(DECL_ARGS)
Line 336  print_mdoc_node(DECL_ARGS)
                 }                  }
         }          }
   
           /*
            * Since SYNPRETTY sections aren't "turned off" with `Ek',
            * we have to intuit whether we should disable formatting.
            */
   
           if ( ! (MDOC_SYNPRETTY & n->flags) &&
               ((n->prev   && MDOC_SYNPRETTY & n->prev->flags) ||
                (n->parent && MDOC_SYNPRETTY & n->parent->flags)))
                   p->flags &= ~(TERMP_KEEP | TERMP_PREKEEP);
   
         if (chld && n->child)          if (chld && n->child)
                 print_mdoc_nodelist(p, &npair, m, n->child);                  print_mdoc_nodelist(p, &npair, m, n->child);
   
Line 1104  termp_an_post(DECL_ARGS)
Line 1116  termp_an_post(DECL_ARGS)
                 return;                  return;
         }          }
   
         if (AUTH_split == n->data.An.auth) {          if (AUTH_split == n->data.An->auth) {
                 p->flags &= ~TERMP_NOSPLIT;                  p->flags &= ~TERMP_NOSPLIT;
                 p->flags |= TERMP_SPLIT;                  p->flags |= TERMP_SPLIT;
         } else if (AUTH_nosplit == n->data.An.auth) {          } else if (AUTH_nosplit == n->data.An->auth) {
                 p->flags &= ~TERMP_SPLIT;                  p->flags &= ~TERMP_SPLIT;
                 p->flags |= TERMP_NOSPLIT;                  p->flags |= TERMP_NOSPLIT;
         }          }
Line 1578  termp_bd_pre(DECL_ARGS)
Line 1590  termp_bd_pre(DECL_ARGS)
   
         for (nn = n->child; nn; nn = nn->next) {          for (nn = n->child; nn; nn = nn->next) {
                 print_mdoc_node(p, pair, m, nn);                  print_mdoc_node(p, pair, m, nn);
                   /*
                    * If the printed node flushes its own line, then we
                    * needn't do it here as well.  This is hacky, but the
                    * notion of selective eoln whitespace is pretty dumb
                    * anyway, so don't sweat it.
                    */
                   switch (nn->tok) {
                   case (MDOC_Sm):
                           /* FALLTHROUGH */
                   case (MDOC_br):
                           /* FALLTHROUGH */
                   case (MDOC_sp):
                           /* FALLTHROUGH */
                   case (MDOC_Bl):
                           /* FALLTHROUGH */
                   case (MDOC_D1):
                           /* FALLTHROUGH */
                   case (MDOC_Dl):
                           /* FALLTHROUGH */
                   case (MDOC_Lp):
                           /* FALLTHROUGH */
                   case (MDOC_Pp):
                           continue;
                   default:
                           break;
                   }
                 if (nn->next && nn->next->line == nn->line)                  if (nn->next && nn->next->line == nn->line)
                         continue;                          continue;
                 term_flushln(p);                  term_flushln(p);
Line 1636  termp_xx_pre(DECL_ARGS)
Line 1674  termp_xx_pre(DECL_ARGS)
         pp = NULL;          pp = NULL;
         switch (n->tok) {          switch (n->tok) {
         case (MDOC_Bsx):          case (MDOC_Bsx):
                 pp = "BSDI BSD/OS";                  pp = "BSD/OS";
                 break;                  break;
         case (MDOC_Dx):          case (MDOC_Dx):
                 pp = "DragonFly";                  pp = "DragonFly";
Line 1665  termp_xx_pre(DECL_ARGS)
Line 1703  termp_xx_pre(DECL_ARGS)
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  static int
 termp_pf_pre(DECL_ARGS)  termp_igndelim_pre(DECL_ARGS)
 {  {
   
         p->flags |= TERMP_IGNDELIM;          p->flags |= TERMP_IGNDELIM;
Line 1678  static void
Line 1716  static void
 termp_pf_post(DECL_ARGS)  termp_pf_post(DECL_ARGS)
 {  {
   
         p->flags &= ~TERMP_IGNDELIM;  
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
 }  }
   
Line 1778  termp_sp_pre(DECL_ARGS)
Line 1815  termp_sp_pre(DECL_ARGS)
                 len = 0;                  len = 0;
                 break;                  break;
         default:          default:
                 assert(n->parent);  
                 if ((NULL == n->next || NULL == n->prev) &&  
                                 (MDOC_Ss == n->parent->tok ||  
                                  MDOC_Sh == n->parent->tok))  
                         return(0);  
                 len = 1;                  len = 1;
                 break;                  break;
         }          }
Line 1796  termp_sp_pre(DECL_ARGS)
Line 1828  termp_sp_pre(DECL_ARGS)
 }  }
   
   
   /* ARGSUSED */
 static int  static int
 termp_quote_pre(DECL_ARGS)  termp_quote_pre(DECL_ARGS)
 {  {
Line 1855  termp_quote_pre(DECL_ARGS)
Line 1888  termp_quote_pre(DECL_ARGS)
 }  }
   
   
   /* ARGSUSED */
 static void  static void
 termp_quote_post(DECL_ARGS)  termp_quote_post(DECL_ARGS)
 {  {
Line 2054  termp_lk_pre(DECL_ARGS)
Line 2088  termp_lk_pre(DECL_ARGS)
   
         nn = sv = n->child;          nn = sv = n->child;
   
         if (NULL == nn->next)          if (NULL == nn || NULL == nn->next)
                 return(1);                  return(1);
   
         for (nn = nn->next; nn; nn = nn->next)          for (nn = nn->next; nn; nn = nn->next)
Line 2083  termp_bk_pre(DECL_ARGS)
Line 2117  termp_bk_pre(DECL_ARGS)
         case (MDOC_HEAD):          case (MDOC_HEAD):
                 return(0);                  return(0);
         case (MDOC_BODY):          case (MDOC_BODY):
                 p->flags |= TERMP_PREKEEP;                  if (n->parent->args || 0 == n->prev->nchild)
                           p->flags |= TERMP_PREKEEP;
                 break;                  break;
         default:          default:
                 abort();                  abort();

Legend:
Removed from v.1.188  
changed lines
  Added in v.1.200

CVSweb