[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.19 and 1.27

version 1.19, 2009/07/04 11:04:46 version 1.27, 2009/07/12 16:55:11
Line 141  DECL_PRE(termp_ap);
Line 141  DECL_PRE(termp_ap);
 DECL_PRE(termp_ar);  DECL_PRE(termp_ar);
 DECL_PRE(termp_at);  DECL_PRE(termp_at);
 DECL_PRE(termp_bf);  DECL_PRE(termp_bf);
 DECL_PRE(termp_bsx);  
 DECL_PRE(termp_bt);  DECL_PRE(termp_bt);
 DECL_PRE(termp_cd);  DECL_PRE(termp_cd);
 DECL_PRE(termp_cm);  DECL_PRE(termp_cm);
 DECL_PRE(termp_dx);  
 DECL_PRE(termp_em);  DECL_PRE(termp_em);
 DECL_PRE(termp_ex);  DECL_PRE(termp_ex);
 DECL_PRE(termp_fa);  DECL_PRE(termp_fa);
 DECL_PRE(termp_fl);  DECL_PRE(termp_fl);
 DECL_PRE(termp_fx);  
 DECL_PRE(termp_ic);  DECL_PRE(termp_ic);
 DECL_PRE(termp_lk);  DECL_PRE(termp_lk);
 DECL_PRE(termp_ms);  DECL_PRE(termp_ms);
Line 158  DECL_PRE(termp_mt);
Line 155  DECL_PRE(termp_mt);
 DECL_PRE(termp_nd);  DECL_PRE(termp_nd);
 DECL_PRE(termp_nm);  DECL_PRE(termp_nm);
 DECL_PRE(termp_ns);  DECL_PRE(termp_ns);
 DECL_PRE(termp_nx);  DECL_PRE(termp_xx);
 DECL_PRE(termp_ox);  
 DECL_PRE(termp_pa);  DECL_PRE(termp_pa);
 DECL_PRE(termp_pp);  DECL_PRE(termp_pp);
 DECL_PRE(termp_rs);  DECL_PRE(termp_rs);
Line 169  DECL_PRE(termp_st);
Line 165  DECL_PRE(termp_st);
 DECL_PRE(termp_sx);  DECL_PRE(termp_sx);
 DECL_PRE(termp_sy);  DECL_PRE(termp_sy);
 DECL_PRE(termp_ud);  DECL_PRE(termp_ud);
 DECL_PRE(termp_ux);  
 DECL_PRE(termp_va);  DECL_PRE(termp_va);
 DECL_PRE(termp_xr);  DECL_PRE(termp_xr);
   
Line 243  static const struct termact termacts[MDOC_MAX] = {
Line 238  static const struct termact termacts[MDOC_MAX] = {
         { termp_bf_pre, NULL }, /* Bf */          { termp_bf_pre, NULL }, /* Bf */
         { termp_bq_pre, termp_bq_post }, /* Bo */          { termp_bq_pre, termp_bq_post }, /* Bo */
         { termp_bq_pre, termp_bq_post }, /* Bq */          { termp_bq_pre, termp_bq_post }, /* Bq */
         { termp_bsx_pre, NULL }, /* Bsx */          { termp_xx_pre, NULL }, /* Bsx */
         { NULL, termp_bx_post }, /* Bx */          { NULL, termp_bx_post }, /* Bx */
         { NULL, NULL }, /* Db */          { NULL, NULL }, /* Db */
         { NULL, NULL }, /* Dc */          { NULL, NULL }, /* Dc */
Line 253  static const struct termact termacts[MDOC_MAX] = {
Line 248  static const struct termact termacts[MDOC_MAX] = {
         { NULL, NULL }, /* Ef */          { NULL, NULL }, /* Ef */
         { termp_em_pre, NULL }, /* Em */          { termp_em_pre, NULL }, /* Em */
         { NULL, NULL }, /* Eo */          { NULL, NULL }, /* Eo */
         { termp_fx_pre, NULL }, /* Fx */          { termp_xx_pre, NULL }, /* Fx */
         { termp_ms_pre, NULL }, /* Ms */          { termp_ms_pre, NULL }, /* Ms */
         { NULL, NULL }, /* No */          { NULL, NULL }, /* No */
         { termp_ns_pre, NULL }, /* Ns */          { termp_ns_pre, NULL }, /* Ns */
         { termp_nx_pre, NULL }, /* Nx */          { termp_xx_pre, NULL }, /* Nx */
         { termp_ox_pre, NULL }, /* Ox */          { termp_xx_pre, NULL }, /* Ox */
         { NULL, NULL }, /* Pc */          { NULL, NULL }, /* Pc */
         { termp_pf_pre, termp_pf_post }, /* Pf */          { termp_pf_pre, termp_pf_post }, /* Pf */
         { termp_pq_pre, termp_pq_post }, /* Po */          { termp_pq_pre, termp_pq_post }, /* Po */
Line 276  static const struct termact termacts[MDOC_MAX] = {
Line 271  static const struct termact termacts[MDOC_MAX] = {
         { termp_sx_pre, NULL }, /* Sx */          { termp_sx_pre, NULL }, /* Sx */
         { termp_sy_pre, NULL }, /* Sy */          { termp_sy_pre, NULL }, /* Sy */
         { NULL, NULL }, /* Tn */          { NULL, NULL }, /* Tn */
         { termp_ux_pre, NULL }, /* Ux */          { termp_xx_pre, NULL }, /* Ux */
         { NULL, NULL }, /* Xc */          { NULL, NULL }, /* Xc */
         { NULL, NULL }, /* Xo */          { NULL, NULL }, /* Xo */
         { termp_fo_pre, termp_fo_post }, /* Fo */          { termp_fo_pre, termp_fo_post }, /* Fo */
Line 299  static const struct termact termacts[MDOC_MAX] = {
Line 294  static const struct termact termacts[MDOC_MAX] = {
         { NULL, NULL }, /* %C */          { NULL, NULL }, /* %C */
         { NULL, NULL }, /* Es */          { NULL, NULL }, /* Es */
         { NULL, NULL }, /* En */          { NULL, NULL }, /* En */
         { termp_dx_pre, NULL }, /* Dx */          { termp_xx_pre, NULL }, /* Dx */
         { NULL, NULL }, /* %Q */          { NULL, NULL }, /* %Q */
 };  };
   
Line 532  arg_width(const struct mdoc_argv *arg, int pos)
Line 527  arg_width(const struct mdoc_argv *arg, int pos)
   
         assert(pos < (int)arg->sz && pos >= 0);          assert(pos < (int)arg->sz && pos >= 0);
         assert(arg->value[pos]);          assert(arg->value[pos]);
         if (0 == strcmp(arg->value[pos], "indent"))  
                 return(INDENT + 3);  
         if (0 == strcmp(arg->value[pos], "indent-two"))  
                 return(INDENT * 2 + 2);  
   
         if (0 == (len = (int)strlen(arg->value[pos])))          if (0 == (len = (int)strlen(arg->value[pos])))
                 return(0);                  return(0);
Line 608  arg_offset(const struct mdoc_argv *arg)
Line 599  arg_offset(const struct mdoc_argv *arg)
         if (0 == strcmp(*arg->value, "indent"))          if (0 == strcmp(*arg->value, "indent"))
                 return(INDENT + 1);                  return(INDENT + 1);
         if (0 == strcmp(*arg->value, "indent-two"))          if (0 == strcmp(*arg->value, "indent-two"))
                 return(INDENT * 2);                  return((INDENT + 1) * 2);
   
         /* FIXME: needs to support field-widths (10n, etc.). */          /* FIXME: needs to support field-widths (10n, etc.). */
   
Line 917  termp_it_pre(DECL_ARGS)
Line 908  termp_it_pre(DECL_ARGS)
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case (MDOC_Hyphen):                  case (MDOC_Hyphen):
                         p->flags |= TERMP_BOLD;                          p->flags |= TERMP_BOLD;
                         term_word(p, "\\-");                          term_word(p, "\\(hy");
                         break;                          break;
                 case (MDOC_Enum):                  case (MDOC_Enum):
                         (pair->ppair->ppair->count)++;                          (pair->ppair->ppair->count)++;
Line 1139  static int
Line 1130  static int
 termp_nd_pre(DECL_ARGS)  termp_nd_pre(DECL_ARGS)
 {  {
   
           if (MDOC_BODY != node->type)
                   return(1);
           /*
            * XXX: signed off by jmc@openbsd.org.  This technically
            * produces a minus sign after the Nd, which is wrong, but is
            * consistent with the historic OpenBSD tmac file.
            */
   #if defined(__OpenBSD__) || defined(__linux__)
         term_word(p, "\\-");          term_word(p, "\\-");
   #else
           term_word(p, "\\(em");
   #endif
         return(1);          return(1);
 }  }
   
Line 1453  termp_fn_post(DECL_ARGS)
Line 1455  termp_fn_post(DECL_ARGS)
   
         if (node->sec == SEC_SYNOPSIS && node->next)          if (node->sec == SEC_SYNOPSIS && node->next)
                 term_vspace(p);                  term_vspace(p);
   
 }  }
   
   
Line 1632  termp_qq_post(DECL_ARGS)
Line 1633  termp_qq_post(DECL_ARGS)
   
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  
 termp_bsx_pre(DECL_ARGS)  
 {  
   
         term_word(p, "BSDI BSD/OS");  
         return(1);  
 }  
   
   
 /* ARGSUSED */  
 static void  static void
 termp_bx_post(DECL_ARGS)  termp_bx_post(DECL_ARGS)
 {  {
Line 1654  termp_bx_post(DECL_ARGS)
Line 1645  termp_bx_post(DECL_ARGS)
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  static int
 termp_ox_pre(DECL_ARGS)  termp_xx_pre(DECL_ARGS)
 {  {
           const char      *pp;
   
         term_word(p, "OpenBSD");          pp = NULL;
         return(1);          switch (node->tok) {
 }          case (MDOC_Bsx):
                   pp = "BSDI BSD/OS";
                   break;
           case (MDOC_Dx):
                   pp = "DragonFlyBSD";
                   break;
           case (MDOC_Fx):
                   pp = "FreeBSD";
                   break;
           case (MDOC_Nx):
                   pp = "NetBSD";
                   break;
           case (MDOC_Ox):
                   pp = "OpenBSD";
                   break;
           case (MDOC_Ux):
                   pp = "UNIX";
                   break;
           default:
                   break;
           }
   
           assert(pp);
 /* ARGSUSED */          term_word(p, pp);
 static int  
 termp_dx_pre(DECL_ARGS)  
 {  
   
         term_word(p, "DragonFly");  
         return(1);          return(1);
 }  }
   
   
 /* ARGSUSED */  /* ARGSUSED */
 static int  static int
 termp_ux_pre(DECL_ARGS)  
 {  
   
         term_word(p, "UNIX");  
         return(1);  
 }  
   
   
 /* ARGSUSED */  
 static int  
 termp_fx_pre(DECL_ARGS)  
 {  
   
         term_word(p, "FreeBSD");  
         return(1);  
 }  
   
   
 /* ARGSUSED */  
 static int  
 termp_nx_pre(DECL_ARGS)  
 {  
   
         term_word(p, "NetBSD");  
         return(1);  
 }  
   
   
 /* ARGSUSED */  
 static int  
 termp_sq_pre(DECL_ARGS)  termp_sq_pre(DECL_ARGS)
 {  {
   
Line 1842  static int
Line 1819  static int
 termp_in_pre(DECL_ARGS)  termp_in_pre(DECL_ARGS)
 {  {
   
           /* XXX This conforms to new-groff style. */
         TERMPAIR_SETFLAG(p, pair, ttypes[TTYPE_INCLUDE]);          TERMPAIR_SETFLAG(p, pair, ttypes[TTYPE_INCLUDE]);
         term_word(p, "#include");  
           if (SEC_SYNOPSIS == node->sec)
                   term_word(p, "#include");
   
         term_word(p, "<");          term_word(p, "<");
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
         return(1);          return(1);
Line 1858  termp_in_post(DECL_ARGS)
Line 1839  termp_in_post(DECL_ARGS)
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
         term_word(p, ">");          term_word(p, ">");
   
         term_newln(p);  
         if (SEC_SYNOPSIS != node->sec)          if (SEC_SYNOPSIS != node->sec)
                 return;                  return;
   
           term_newln(p);
           /*
            * XXX Not entirely correct.  If `.In foo bar' is specified in
            * the SYNOPSIS section, then it produces a single break after
            * the <foo>; mandoc asserts a vertical space.  Since this
            * construction is rarely used, I think it's fine.
            */
         if (node->next && MDOC_In != node->next->tok)          if (node->next && MDOC_In != node->next->tok)
                 term_vspace(p);                  term_vspace(p);
 }  }

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.27

CVSweb