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

Diff for /mandoc/mdoc_man.c between version 1.71 and 1.80

version 1.71, 2014/10/30 20:10:02 version 1.80, 2014/12/23 13:48:57
Line 46  static  void   font_push(char);
Line 46  static  void   font_push(char);
 static  void      font_pop(void);  static  void      font_pop(void);
 static  void      mid_it(void);  static  void      mid_it(void);
 static  void      post__t(DECL_ARGS);  static  void      post__t(DECL_ARGS);
   static  void      post_aq(DECL_ARGS);
 static  void      post_bd(DECL_ARGS);  static  void      post_bd(DECL_ARGS);
 static  void      post_bf(DECL_ARGS);  static  void      post_bf(DECL_ARGS);
 static  void      post_bk(DECL_ARGS);  static  void      post_bk(DECL_ARGS);
Line 72  static void   post_vt(DECL_ARGS);
Line 73  static void   post_vt(DECL_ARGS);
 static  int       pre__t(DECL_ARGS);  static  int       pre__t(DECL_ARGS);
 static  int       pre_an(DECL_ARGS);  static  int       pre_an(DECL_ARGS);
 static  int       pre_ap(DECL_ARGS);  static  int       pre_ap(DECL_ARGS);
   static  int       pre_aq(DECL_ARGS);
 static  int       pre_bd(DECL_ARGS);  static  int       pre_bd(DECL_ARGS);
 static  int       pre_bf(DECL_ARGS);  static  int       pre_bf(DECL_ARGS);
 static  int       pre_bk(DECL_ARGS);  static  int       pre_bk(DECL_ARGS);
Line 82  static int   pre_dl(DECL_ARGS);
Line 84  static int   pre_dl(DECL_ARGS);
 static  int       pre_en(DECL_ARGS);  static  int       pre_en(DECL_ARGS);
 static  int       pre_enc(DECL_ARGS);  static  int       pre_enc(DECL_ARGS);
 static  int       pre_em(DECL_ARGS);  static  int       pre_em(DECL_ARGS);
 static  int       pre_es(DECL_ARGS);  static  int       pre_skip(DECL_ARGS);
   static  int       pre_eo(DECL_ARGS);
 static  int       pre_ex(DECL_ARGS);  static  int       pre_ex(DECL_ARGS);
 static  int       pre_fa(DECL_ARGS);  static  int       pre_fa(DECL_ARGS);
 static  int       pre_fd(DECL_ARGS);  static  int       pre_fd(DECL_ARGS);
Line 172  static const struct manact manacts[MDOC_MAX + 1] = {
Line 175  static const struct manact manacts[MDOC_MAX + 1] = {
         { NULL, pre__t, post__t, NULL, NULL }, /* %T */          { NULL, pre__t, post__t, NULL, NULL }, /* %T */
         { NULL, NULL, post_percent, NULL, NULL }, /* %V */          { NULL, NULL, post_percent, NULL, NULL }, /* %V */
         { NULL, NULL, NULL, NULL, NULL }, /* Ac */          { NULL, NULL, NULL, NULL, NULL }, /* Ac */
         { cond_body, pre_enc, post_enc, "<", ">" }, /* Ao */          { cond_body, pre_aq, post_aq, NULL, NULL }, /* Ao */
         { cond_body, pre_enc, post_enc, "<", ">" }, /* Aq */          { cond_body, pre_aq, post_aq, NULL, NULL }, /* Aq */
         { NULL, NULL, NULL, NULL, NULL }, /* At */          { NULL, NULL, NULL, NULL, NULL }, /* At */
         { NULL, NULL, NULL, NULL, NULL }, /* Bc */          { NULL, NULL, NULL, NULL, NULL }, /* Bc */
         { NULL, pre_bf, post_bf, NULL, NULL }, /* Bf */          { NULL, pre_bf, post_bf, NULL, NULL }, /* Bf */
Line 181  static const struct manact manacts[MDOC_MAX + 1] = {
Line 184  static const struct manact manacts[MDOC_MAX + 1] = {
         { cond_body, pre_enc, post_enc, "[", "]" }, /* Bq */          { cond_body, pre_enc, post_enc, "[", "]" }, /* Bq */
         { NULL, pre_ux, NULL, "BSD/OS", NULL }, /* Bsx */          { NULL, pre_ux, NULL, "BSD/OS", NULL }, /* Bsx */
         { NULL, pre_bx, NULL, NULL, NULL }, /* Bx */          { NULL, pre_bx, NULL, NULL, NULL }, /* Bx */
         { NULL, NULL, NULL, NULL, NULL }, /* Db */          { NULL, pre_skip, NULL, NULL, NULL }, /* Db */
         { NULL, NULL, NULL, NULL, NULL }, /* Dc */          { NULL, NULL, NULL, NULL, NULL }, /* Dc */
         { cond_body, pre_enc, post_enc, "\\(lq", "\\(rq" }, /* Do */          { cond_body, pre_enc, post_enc, "\\(lq", "\\(rq" }, /* Do */
         { cond_body, pre_enc, post_enc, "\\(lq", "\\(rq" }, /* Dq */          { cond_body, pre_enc, post_enc, "\\(lq", "\\(rq" }, /* Dq */
         { NULL, NULL, NULL, NULL, NULL }, /* Ec */          { NULL, NULL, NULL, NULL, NULL }, /* Ec */
         { NULL, NULL, NULL, NULL, NULL }, /* Ef */          { NULL, NULL, NULL, NULL, NULL }, /* Ef */
         { NULL, pre_em, post_font, NULL, NULL }, /* Em */          { NULL, pre_em, post_font, NULL, NULL }, /* Em */
         { NULL, NULL, post_eo, NULL, NULL }, /* Eo */          { cond_body, pre_eo, post_eo, NULL, NULL }, /* Eo */
         { NULL, pre_ux, NULL, "FreeBSD", NULL }, /* Fx */          { NULL, pre_ux, NULL, "FreeBSD", NULL }, /* Fx */
         { NULL, pre_sy, post_font, NULL, NULL }, /* Ms */          { NULL, pre_sy, post_font, NULL, NULL }, /* Ms */
         { NULL, pre_no, NULL, NULL, NULL }, /* No */          { NULL, pre_no, NULL, NULL, NULL }, /* No */
Line 233  static const struct manact manacts[MDOC_MAX + 1] = {
Line 236  static const struct manact manacts[MDOC_MAX + 1] = {
         { cond_body, pre_enc, post_enc, "{", "}" }, /* Bro */          { cond_body, pre_enc, post_enc, "{", "}" }, /* Bro */
         { NULL, NULL, NULL, NULL, NULL }, /* Brc */          { NULL, NULL, NULL, NULL, NULL }, /* Brc */
         { NULL, NULL, post_percent, NULL, NULL }, /* %C */          { NULL, NULL, post_percent, NULL, NULL }, /* %C */
         { NULL, pre_es, NULL, NULL, NULL }, /* Es */          { NULL, pre_skip, NULL, NULL, NULL }, /* Es */
         { cond_body, pre_en, post_en, NULL, NULL }, /* En */          { cond_body, pre_en, post_en, NULL, NULL }, /* En */
         { NULL, pre_ux, NULL, "DragonFly", NULL }, /* Dx */          { NULL, pre_ux, NULL, "DragonFly", NULL }, /* Dx */
         { NULL, NULL, post_percent, NULL, NULL }, /* %Q */          { NULL, NULL, post_percent, NULL, NULL }, /* %Q */
Line 431  print_offs(const char *v, int keywords)
Line 434  print_offs(const char *v, int keywords)
                 sz = 6;                  sz = 6;
         else if (keywords && !strcmp(v, "indent-two"))          else if (keywords && !strcmp(v, "indent-two"))
                 sz = 12;                  sz = 12;
         else if (a2roffsu(v, &su, SCALE_MAX)) {          else if (a2roffsu(v, &su, SCALE_EN) > 1) {
                   if (su.scale < 0.0)
                           su.scale = 0.0;
                 if (SCALE_EN == su.unit)                  if (SCALE_EN == su.unit)
                         sz = su.scale;                          sz = su.scale;
                 else {                  else {
Line 478  print_width(const char *v, const struct mdoc_node *chi
Line 483  print_width(const char *v, const struct mdoc_node *chi
         /* Convert v into a number (of characters). */          /* Convert v into a number (of characters). */
         if (NULL == v)          if (NULL == v)
                 sz = defsz;                  sz = defsz;
         else if (a2roffsu(v, &su, SCALE_MAX)) {          else if (a2roffsu(v, &su, SCALE_MAX) > 1) {
                   if (su.scale < 0.0)
                           su.scale = 0.0;
                 if (SCALE_EN == su.unit)                  if (SCALE_EN == su.unit)
                         sz = su.scale;                          sz = su.scale;
                 else {                  else {
Line 594  print_node(DECL_ARGS)
Line 601  print_node(DECL_ARGS)
                         printf("\\&");                          printf("\\&");
                         outflags &= ~MMAN_spc;                          outflags &= ~MMAN_spc;
                 }                  }
                   if (outflags & MMAN_Sm && ! (n->flags & MDOC_DELIMC))
                           outflags |= MMAN_spc_force;
                 print_word(n->string);                  print_word(n->string);
                   if (outflags & MMAN_Sm && ! (n->flags & MDOC_DELIMO))
                           outflags |= MMAN_spc;
         } else {          } else {
                 /*                  /*
                  * Conditionally run the pre-node action handler for a                   * Conditionally run the pre-node action handler for a
                  * node.                   * node.
                  */                   */
                 act = manacts + n->tok;                  act = manacts + n->tok;
                 cond = NULL == act->cond || (*act->cond)(meta, n);                  cond = act->cond == NULL || (*act->cond)(meta, n);
                 if (cond && act->pre && ENDBODY_NOT == n->end)                  if (cond && act->pre && (n->end == ENDBODY_NOT || n->nchild))
                         do_sub = (*act->pre)(meta, n);                          do_sub = (*act->pre)(meta, n);
         }          }
   
Line 866  pre_ap(DECL_ARGS)
Line 877  pre_ap(DECL_ARGS)
 }  }
   
 static int  static int
   pre_aq(DECL_ARGS)
   {
   
           print_word(n->parent->prev != NULL &&
               n->parent->prev->tok == MDOC_An ?  "<" : "\\(la");
           outflags &= ~MMAN_spc;
           return(1);
   }
   
   static void
   post_aq(DECL_ARGS)
   {
   
           outflags &= ~(MMAN_spc | MMAN_nl);
           print_word(n->parent->prev != NULL &&
               n->parent->prev->tok == MDOC_An ?  ">" : "\\(ra");
   }
   
   static int
 pre_bd(DECL_ARGS)  pre_bd(DECL_ARGS)
 {  {
   
Line 1098  post_en(DECL_ARGS)
Line 1128  post_en(DECL_ARGS)
         return;          return;
 }  }
   
 static void  static int
 post_eo(DECL_ARGS)  pre_eo(DECL_ARGS)
 {  {
   
         if (MDOC_HEAD == n->type || MDOC_BODY == n->type)          outflags &= ~(MMAN_spc | MMAN_nl);
                 outflags &= ~MMAN_spc;          return(1);
 }  }
   
 static int  static void
 pre_es(DECL_ARGS)  post_eo(DECL_ARGS)
 {  {
   
         return(0);          if (n->end != ENDBODY_SPACE)
                   outflags &= ~MMAN_spc;
 }  }
   
 static int  static int
Line 1340  pre_it(DECL_ARGS)
Line 1371  pre_it(DECL_ARGS)
                         outflags |= MMAN_nl;                          outflags |= MMAN_nl;
                         font_push('B');                          font_push('B');
                         if (LIST_bullet == bln->norm->Bl.type)                          if (LIST_bullet == bln->norm->Bl.type)
                                 print_word("o");                                  print_word("\\(bu");
                         else                          else
                                 print_word("-");                                  print_word("-");
                         font_pop();                          font_pop();
Line 1575  static void
Line 1606  static void
 post_pf(DECL_ARGS)  post_pf(DECL_ARGS)
 {  {
   
         outflags &= ~MMAN_spc;          if ( ! (n->next == NULL || n->next->flags & MDOC_LINE))
                   outflags &= ~MMAN_spc;
 }  }
   
 static int  static int
Line 1649  pre_rv(DECL_ARGS)
Line 1681  pre_rv(DECL_ARGS)
   
         print_word("is set to indicate the error.");          print_word("is set to indicate the error.");
         outflags |= MMAN_nl;          outflags |= MMAN_nl;
           return(0);
   }
   
   static int
   pre_skip(DECL_ARGS)
   {
   
         return(0);          return(0);
 }  }
   

Legend:
Removed from v.1.71  
changed lines
  Added in v.1.80

CVSweb