[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.17 and 1.24

version 1.17, 2009/06/22 12:38:07 version 1.24, 2009/07/12 08:49:50
Line 532  arg_width(const struct mdoc_argv *arg, int pos)
Line 532  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 604  arg_offset(const struct mdoc_argv *arg)
Line 600  arg_offset(const struct mdoc_argv *arg)
   
         assert(*arg->value);          assert(*arg->value);
         if (0 == strcmp(*arg->value, "left"))          if (0 == strcmp(*arg->value, "left"))
                 return(INDENT - 1);                  return(0);
         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 761  termp_it_pre(DECL_ARGS)
Line 757  termp_it_pre(DECL_ARGS)
                 if (vals[0] >= 0)                  if (vals[0] >= 0)
                         width = arg_width(&bl->args->argv[vals[0]], 0);                          width = arg_width(&bl->args->argv[vals[0]], 0);
                 if (vals[1] >= 0)                  if (vals[1] >= 0)
                         offset = arg_offset(&bl->args->argv[vals[1]]);                          offset += arg_offset(&bl->args->argv[vals[1]]);
                 break;                  break;
         }          }
   
Line 1138  termp_ex_pre(DECL_ARGS)
Line 1134  termp_ex_pre(DECL_ARGS)
 static int  static int
 termp_nd_pre(DECL_ARGS)  termp_nd_pre(DECL_ARGS)
 {  {
           /*
            * 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.
            */
   #ifdef __OpenBSD__
         term_word(p, "\\-");          term_word(p, "\\-");
   #else
           term_word(p, "\\(em");
   #endif
         return(1);          return(1);
 }  }
   
Line 1309  termp_lb_pre(DECL_ARGS)
Line 1313  termp_lb_pre(DECL_ARGS)
         const char      *lb;          const char      *lb;
   
         assert(node->child && MDOC_TEXT == node->child->type);          assert(node->child && MDOC_TEXT == node->child->type);
         if ((lb = mdoc_a2lib(node->child->string))) {          lb = mdoc_a2lib(node->child->string);
           if (lb) {
                 term_word(p, lb);                  term_word(p, lb);
                 return(0);                  return(0);
         }          }
Line 1841  static int
Line 1846  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 1857  termp_in_post(DECL_ARGS)
Line 1866  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.17  
changed lines
  Added in v.1.24

CVSweb