[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.2 and 1.3

version 1.2, 2011/09/20 13:47:55 version 1.3, 2011/09/30 00:13:28
Line 43  static int   cond_body(DECL_ARGS);
Line 43  static int   cond_body(DECL_ARGS);
 static  int       pre_enc(DECL_ARGS);  static  int       pre_enc(DECL_ARGS);
 static  void      post_enc(DECL_ARGS);  static  void      post_enc(DECL_ARGS);
 static  void      post_percent(DECL_ARGS);  static  void      post_percent(DECL_ARGS);
   static  int       pre_sect(DECL_ARGS);
   static  void      post_sect(DECL_ARGS);
   
   static  int       pre_ap(DECL_ARGS);
   static  int       pre_bd(DECL_ARGS);
   static  void      post_bd(DECL_ARGS);
   static  int       pre_br(DECL_ARGS);
 static  int       pre_dl(DECL_ARGS);  static  int       pre_dl(DECL_ARGS);
 static  void      post_dl(DECL_ARGS);  static  void      post_dl(DECL_ARGS);
 static  int       pre_it(DECL_ARGS);  static  int       pre_it(DECL_ARGS);
 static  int       pre_nm(DECL_ARGS);  static  int       pre_nm(DECL_ARGS);
 static  void      post_nm(DECL_ARGS);  static  void      post_nm(DECL_ARGS);
 static  int       pre_ns(DECL_ARGS);  static  int       pre_ns(DECL_ARGS);
   static  void      post_pf(DECL_ARGS);
 static  int       pre_pp(DECL_ARGS);  static  int       pre_pp(DECL_ARGS);
 static  int       pre_sh(DECL_ARGS);  static  int       pre_sp(DECL_ARGS);
 static  void      post_sh(DECL_ARGS);  static  void      post_sp(DECL_ARGS);
 static  int       pre_xr(DECL_ARGS);  static  int       pre_xr(DECL_ARGS);
   
   
 static  const struct manact manacts[MDOC_MAX] = {  static  const struct manact manacts[MDOC_MAX + 1] = {
         { NULL, NULL, NULL, NULL, NULL }, /* _Ap */          { NULL, pre_ap, NULL, NULL, NULL }, /* Ap */
         { NULL, NULL, NULL, NULL, NULL }, /* _Dd */          { NULL, NULL, NULL, NULL, NULL }, /* Dd */
         { NULL, NULL, NULL, NULL, NULL }, /* _Dt */          { NULL, NULL, NULL, NULL, NULL }, /* Dt */
         { NULL, NULL, NULL, NULL, NULL }, /* _Os */          { NULL, NULL, NULL, NULL, NULL }, /* _Os */
         { NULL, pre_sh, post_sh, NULL, NULL }, /* Sh */          { NULL, pre_sect, post_sect, ".SH", NULL }, /* Sh */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ss */          { NULL, pre_sect, post_sect, ".SS", NULL }, /* Ss */
         { NULL, pre_pp, NULL, NULL, NULL }, /* Pp */          { NULL, pre_pp, NULL, NULL, NULL }, /* Pp */
         { NULL, NULL, NULL, NULL, NULL }, /* _D1 */          { cond_body, pre_dl, post_dl, NULL, NULL }, /* D1 */
         { cond_body, pre_dl, post_dl, NULL, NULL }, /* Dl */          { cond_body, pre_dl, post_dl, NULL, NULL }, /* Dl */
         { NULL, NULL, NULL, NULL, NULL }, /* _Bd */          { cond_body, pre_bd, post_bd, NULL, NULL }, /* Bd */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ed */          { NULL, NULL, NULL, NULL, NULL }, /* Ed */
         { NULL, NULL, NULL, NULL, NULL }, /* _Bl */          { NULL, NULL, NULL, NULL, NULL }, /* Bl */
         { NULL, NULL, NULL, NULL, NULL }, /* _El */          { NULL, NULL, NULL, NULL, NULL }, /* El */
         { NULL, pre_it, NULL, NULL, NULL }, /* _It */          { NULL, pre_it, NULL, NULL, NULL }, /* _It */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ad */          { NULL, NULL, NULL, NULL, NULL }, /* _Ad */
         { NULL, NULL, NULL, NULL, NULL }, /* _An */          { NULL, NULL, NULL, NULL, NULL }, /* _An */
Line 87  static const struct manact manacts[MDOC_MAX] = {
Line 94  static const struct manact manacts[MDOC_MAX] = {
         { NULL, pre_enc, post_enc, "\\fB-", "\\fP" }, /* Fl */          { NULL, pre_enc, post_enc, "\\fB-", "\\fP" }, /* Fl */
         { NULL, NULL, NULL, NULL, NULL }, /* _Fn */          { NULL, NULL, NULL, NULL, NULL }, /* _Fn */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ft */          { NULL, NULL, NULL, NULL, NULL }, /* _Ft */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ic */          { NULL, pre_enc, post_enc, "\\fB", "\\fP" }, /* Ic */
         { NULL, NULL, NULL, NULL, NULL }, /* _In */          { NULL, NULL, NULL, NULL, NULL }, /* _In */
         { NULL, NULL, NULL, NULL, NULL }, /* _Li */          { NULL, NULL, NULL, NULL, NULL }, /* _Li */
         { cond_head, pre_enc, NULL, "\\- ", NULL }, /* Nd */          { cond_head, pre_enc, NULL, "\\- ", NULL }, /* Nd */
Line 115  static const struct manact manacts[MDOC_MAX] = {
Line 122  static const struct manact manacts[MDOC_MAX] = {
         { NULL, NULL, NULL, NULL, NULL }, /* _Ao */          { NULL, NULL, NULL, NULL, NULL }, /* _Ao */
         { cond_body, pre_enc, post_enc, "<", ">" }, /* Aq */          { cond_body, pre_enc, post_enc, "<", ">" }, /* 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, NULL, NULL, NULL, NULL }, /* _Bf */          { NULL, NULL, NULL, NULL, NULL }, /* _Bf */
         { NULL, NULL, NULL, NULL, NULL }, /* _Bo */          { cond_body, pre_enc, post_enc, "[", "]" }, /* Bo */
         { NULL, NULL, NULL, NULL, NULL }, /* _Bq */          { cond_body, pre_enc, post_enc, "[", "]" }, /* Bq */
         { NULL, NULL, NULL, NULL, NULL }, /* _Bsx */          { NULL, NULL, NULL, NULL, NULL }, /* _Bsx */
         { NULL, NULL, NULL, NULL, NULL }, /* _Bx */          { NULL, NULL, NULL, NULL, NULL }, /* _Bx */
         { NULL, NULL, NULL, NULL, NULL }, /* _Db */          { NULL, NULL, NULL, NULL, NULL }, /* _Db */
Line 127  static const struct manact manacts[MDOC_MAX] = {
Line 134  static const struct manact manacts[MDOC_MAX] = {
         { cond_body, pre_enc, post_enc, "``", "''" }, /* Dq */          { cond_body, pre_enc, post_enc, "``", "''" }, /* 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_enc, post_enc, "\\fI", "\\fP" }, /* _Em */          { NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* Em */
         { NULL, NULL, NULL, NULL, NULL }, /* _Eo */          { NULL, NULL, NULL, NULL, NULL }, /* _Eo */
         { NULL, NULL, NULL, NULL, NULL }, /* _Fx */          { NULL, NULL, NULL, NULL, NULL }, /* _Fx */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ms */          { NULL, NULL, NULL, NULL, NULL }, /* _Ms */
Line 135  static const struct manact manacts[MDOC_MAX] = {
Line 142  static const struct manact manacts[MDOC_MAX] = {
         { NULL, pre_ns, NULL, NULL, NULL }, /* Ns */          { NULL, pre_ns, NULL, NULL, NULL }, /* Ns */
         { NULL, NULL, NULL, NULL, NULL }, /* _Nx */          { NULL, NULL, NULL, NULL, NULL }, /* _Nx */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ox */          { NULL, NULL, NULL, NULL, NULL }, /* _Ox */
         { NULL, NULL, NULL, NULL, NULL }, /* _Pc */          { NULL, NULL, NULL, NULL, NULL }, /* Pc */
         { NULL, NULL, NULL, NULL, NULL }, /* _Pf */          { NULL, NULL, post_pf, NULL, NULL }, /* Pf */
         { NULL, NULL, NULL, NULL, NULL }, /* _Po */          { cond_body, pre_enc, post_enc, "(", ")" }, /* Po */
         { cond_body, pre_enc, post_enc, "(", ")" }, /* _Pq */          { cond_body, pre_enc, post_enc, "(", ")" }, /* Pq */
         { NULL, NULL, NULL, NULL, NULL }, /* _Qc */          { NULL, NULL, NULL, NULL, NULL }, /* _Qc */
         { cond_body, pre_enc, post_enc, "`", "'" }, /* Ql */          { cond_body, pre_enc, post_enc, "`", "'" }, /* Ql */
         { NULL, NULL, NULL, NULL, NULL }, /* _Qo */          { NULL, NULL, NULL, NULL, NULL }, /* _Qo */
Line 149  static const struct manact manacts[MDOC_MAX] = {
Line 156  static const struct manact manacts[MDOC_MAX] = {
         { NULL, NULL, NULL, NULL, NULL }, /* _So */          { NULL, NULL, NULL, NULL, NULL }, /* _So */
         { cond_body, pre_enc, post_enc, "`", "'" }, /* Sq */          { cond_body, pre_enc, post_enc, "`", "'" }, /* Sq */
         { NULL, NULL, NULL, NULL, NULL }, /* _Sm */          { NULL, NULL, NULL, NULL, NULL }, /* _Sm */
         { NULL, NULL, NULL, NULL, NULL }, /* _Sx */          { NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* Sx */
         { NULL, NULL, NULL, NULL, NULL }, /* _Sy */          { NULL, pre_enc, post_enc, "\\fB", "\\fP" }, /* Sy */
         { NULL, NULL, NULL, NULL, NULL }, /* _Tn */          { NULL, NULL, NULL, NULL, NULL }, /* _Tn */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ux */          { NULL, NULL, NULL, NULL, NULL }, /* _Ux */
         { NULL, NULL, NULL, NULL, NULL }, /* _Xc */          { NULL, NULL, NULL, NULL, NULL }, /* _Xc */
         { NULL, NULL, NULL, NULL, NULL }, /* _Xo */          { NULL, NULL, NULL, NULL, NULL }, /* _Xo */
         { NULL, NULL, NULL, NULL, NULL }, /* _Fo */          { NULL, NULL, NULL, NULL, NULL }, /* _Fo */
         { NULL, NULL, NULL, NULL, NULL }, /* _Fc */          { NULL, NULL, NULL, NULL, NULL }, /* _Fc */
         { NULL, NULL, NULL, NULL, NULL }, /* _Oo */          { cond_body, pre_enc, post_enc, "[", "]" }, /* Oo */
         { NULL, NULL, NULL, NULL, NULL }, /* _Oc */          { NULL, NULL, NULL, NULL, NULL }, /* _Oc */
         { NULL, NULL, NULL, NULL, NULL }, /* _Bk */          { NULL, NULL, NULL, NULL, NULL }, /* _Bk */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ek */          { NULL, NULL, NULL, NULL, NULL }, /* _Ek */
Line 166  static const struct manact manacts[MDOC_MAX] = {
Line 173  static const struct manact manacts[MDOC_MAX] = {
         { NULL, NULL, NULL, NULL, NULL }, /* _Fr */          { NULL, NULL, NULL, NULL, NULL }, /* _Fr */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ud */          { NULL, NULL, NULL, NULL, NULL }, /* _Ud */
         { NULL, NULL, NULL, NULL, NULL }, /* _Lb */          { NULL, NULL, NULL, NULL, NULL }, /* _Lb */
         { NULL, NULL, NULL, NULL, NULL }, /* _Lp */          { NULL, pre_pp, NULL, NULL, NULL }, /* Lp */
         { NULL, NULL, NULL, NULL, NULL }, /* _Lk */          { NULL, NULL, NULL, NULL, NULL }, /* _Lk */
         { NULL, NULL, NULL, NULL, NULL }, /* _Mt */          { NULL, NULL, NULL, NULL, NULL }, /* _Mt */
         { NULL, NULL, NULL, NULL, NULL }, /* _Brq */          { NULL, NULL, NULL, NULL, NULL }, /* _Brq */
Line 177  static const struct manact manacts[MDOC_MAX] = {
Line 184  static const struct manact manacts[MDOC_MAX] = {
         { NULL, NULL, NULL, NULL, NULL }, /* _En */          { NULL, NULL, NULL, NULL, NULL }, /* _En */
         { NULL, NULL, NULL, NULL, NULL }, /* _Dx */          { NULL, NULL, NULL, NULL, NULL }, /* _Dx */
         { NULL, NULL, NULL, NULL, NULL }, /* _%Q */          { NULL, NULL, NULL, NULL, NULL }, /* _%Q */
         { NULL, NULL, NULL, NULL, NULL }, /* _br */          { NULL, pre_br, NULL, NULL, NULL }, /* br */
         { NULL, NULL, NULL, NULL, NULL }, /* _sp */          { NULL, pre_sp, post_sp, NULL, NULL }, /* sp */
         { NULL, NULL, NULL, NULL, NULL }, /* _%U */          { NULL, NULL, NULL, NULL, NULL }, /* _%U */
         { NULL, NULL, NULL, NULL, NULL }, /* _Ta */          { NULL, NULL, NULL, NULL, NULL }, /* _Ta */
           { NULL, NULL, NULL, NULL, NULL }, /* ROOT */
 };  };
   
   
Line 219  man_mdoc(void *arg, const struct mdoc *mdoc)
Line 227  man_mdoc(void *arg, const struct mdoc *mdoc)
         m = mdoc_meta(mdoc);          m = mdoc_meta(mdoc);
         n = mdoc_node(mdoc);          n = mdoc_node(mdoc);
   
         printf(".TH \"%s\" \"%s\" \"%s\"", m->title, m->msec, m->date);          printf(".TH \"%s\" \"%s\" \"%s\" \"%s\" \"%s\"",
               m->title, m->msec, m->date, m->os, m->vol);
         need_nl = 1;          need_nl = 1;
         need_space = 0;          need_space = 0;
   
         print_node(m, n);          print_node(m, n);
           putchar('\n');
 }  }
   
 static void  static void
Line 240  print_node(DECL_ARGS)
Line 250  print_node(DECL_ARGS)
         cond = 0;          cond = 0;
         do_sub = 1;          do_sub = 1;
         if (MDOC_TEXT == n->type) {          if (MDOC_TEXT == n->type) {
                   if (need_nl && ('.' == *n->string || '\'' == *n->string)) {
                           print_word("\\&");
                           need_space = 0;
                   }
                 print_word(n->string);                  print_word(n->string);
         } else {          } else {
                 act = manacts + n->tok;                  act = manacts + n->tok;
Line 307  post_percent(DECL_ARGS)
Line 321  post_percent(DECL_ARGS)
 }  }
   
 static int  static int
   pre_sect(DECL_ARGS)
   {
   
           if (MDOC_HEAD != n->type)
                   return(1);
           need_nl = 1;
           print_word(manacts[n->tok].prefix);
           print_word("\"");
           need_space = 0;
           return(1);
   }
   
   static void
   post_sect(DECL_ARGS)
   {
   
           if (MDOC_HEAD != n->type)
                   return;
           need_space = 0;
           print_word("\"");
           need_nl = 1;
   }
   
   static int
   pre_ap(DECL_ARGS)
   {
   
           need_space = 0;
           print_word("'");
           need_space = 0;
           return(0);
   }
   
   static int
   pre_bd(DECL_ARGS)
   {
   
           if (DISP_unfilled == n->norm->Bd.type ||
               DISP_literal  == n->norm->Bd.type) {
                   need_nl = 1;
                   print_word(".nf");
           }
           need_nl = 1;
           return(1);
   }
   
   static void
   post_bd(DECL_ARGS)
   {
   
           if (DISP_unfilled == n->norm->Bd.type ||
               DISP_literal  == n->norm->Bd.type) {
                   need_nl = 1;
                   print_word(".fi");
           }
           need_nl = 1;
   }
   
   static int
   pre_br(DECL_ARGS)
   {
   
           need_nl = 1;
           print_word(".br");
           need_nl = 1;
           return(0);
   }
   
   static int
 pre_dl(DECL_ARGS)  pre_dl(DECL_ARGS)
 {  {
   
Line 334  pre_it(DECL_ARGS)
Line 417  pre_it(DECL_ARGS)
                 need_nl = 1;                  need_nl = 1;
                 print_word(".TP");                  print_word(".TP");
                 bln = n->parent->parent->prev;                  bln = n->parent->parent->prev;
                 print_word(bln->norm->Bl.width);                  switch (bln->norm->Bl.type) {
                   case (LIST_bullet):
                           print_word("4n");
                           need_nl = 1;
                           print_word("\\fBo\\fP");
                           break;
                   default:
                           if (bln->norm->Bl.width)
                                   print_word(bln->norm->Bl.width);
                           break;
                   }
                 need_nl = 1;                  need_nl = 1;
         }          }
         return(1);          return(1);
Line 371  pre_ns(DECL_ARGS)
Line 464  pre_ns(DECL_ARGS)
         return(0);          return(0);
 }  }
   
   static void
   post_pf(DECL_ARGS)
   {
   
           need_space = 0;
   }
   
 static int  static int
 pre_pp(DECL_ARGS)  pre_pp(DECL_ARGS)
 {  {
Line 385  pre_pp(DECL_ARGS)
Line 485  pre_pp(DECL_ARGS)
 }  }
   
 static int  static int
 pre_sh(DECL_ARGS)  pre_sp(DECL_ARGS)
 {  {
   
         if (MDOC_HEAD != n->type)  
                 return(1);  
         need_nl = 1;          need_nl = 1;
         print_word(".SH \"");          print_word(".sp");
         need_space = 0;  
         return(1);          return(1);
 }  }
   
 static void  static void
 post_sh(DECL_ARGS)  post_sp(DECL_ARGS)
 {  {
   
         if (MDOC_HEAD != n->type)  
                 return;  
         need_space = 0;  
         print_word("\"");  
         need_nl = 1;          need_nl = 1;
 }  }
   

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

CVSweb