[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.147 and 1.148

version 1.147, 2010/06/12 10:09:19 version 1.148, 2010/06/12 11:21:44
Line 54  struct termact {
Line 54  struct termact {
   
 static  size_t    a2width(const struct mdoc_argv *, int);  static  size_t    a2width(const struct mdoc_argv *, int);
 static  size_t    a2height(const struct mdoc_node *);  static  size_t    a2height(const struct mdoc_node *);
 static  size_t    a2offs(const struct mdoc_argv *);  static  size_t    a2offs(const char *);
   
 static  int       arg_hasattr(int, const struct mdoc_node *);  static  int       arg_hasattr(int, const struct mdoc_node *);
 static  int       arg_getattrs(const int *, int *, size_t,  static  int       arg_getattrs(const int *, int *, size_t,
Line 489  a2width(const struct mdoc_argv *arg, int pos)
Line 489  a2width(const struct mdoc_argv *arg, int pos)
   
   
 static size_t  static size_t
 a2offs(const struct mdoc_argv *arg)  a2offs(const char *v)
 {  {
         struct roffsu    su;          struct roffsu    su;
   
         if ('\0' == arg->value[0][0])          if ('\0' == *v)
                 return(0);                  return(0);
         else if (0 == strcmp(arg->value[0], "left"))          else if (0 == strcmp(v, "left"))
                 return(0);                  return(0);
         else if (0 == strcmp(arg->value[0], "indent"))          else if (0 == strcmp(v, "indent"))
                 return(INDENT + 1);                  return(INDENT + 1);
         else if (0 == strcmp(arg->value[0], "indent-two"))          else if (0 == strcmp(v, "indent-two"))
                 return((INDENT + 1) * 2);                  return((INDENT + 1) * 2);
         else if ( ! a2roffsu(arg->value[0], &su, SCALE_MAX))          else if ( ! a2roffsu(v, &su, SCALE_MAX))
                 SCALE_HS_INIT(&su, strlen(arg->value[0]));                  SCALE_HS_INIT(&su, strlen(v));
   
         return(term_hspan(&su));          return(term_hspan(&su));
 }  }
Line 672  termp_it_pre(DECL_ARGS)
Line 672  termp_it_pre(DECL_ARGS)
         width = offset = 0;          width = offset = 0;
   
         if (vals[1] >= 0)          if (vals[1] >= 0)
                 offset = a2offs(&bl->args->argv[vals[1]]);                  offset = a2offs(bl->args->argv[vals[1]].value[0]);
   
         switch (type) {          switch (type) {
         case (LIST_column):          case (LIST_column):
Line 1602  static int
Line 1602  static int
 termp_bd_pre(DECL_ARGS)  termp_bd_pre(DECL_ARGS)
 {  {
         size_t                   tabwidth;          size_t                   tabwidth;
         int                      i;  
         size_t                   rm, rmax;          size_t                   rm, rmax;
         const struct mdoc_node  *nn;          const struct mdoc_node  *nn;
   
Line 1612  termp_bd_pre(DECL_ARGS)
Line 1611  termp_bd_pre(DECL_ARGS)
         } else if (MDOC_HEAD == n->type)          } else if (MDOC_HEAD == n->type)
                 return(0);                  return(0);
   
         nn = n->parent;          if (n->data.Bd.offs)
                   p->offset += a2offs(n->data.Bd.offs);
   
         if (-1 != (i = arg_getattr(MDOC_Offset, nn)))  
                 p->offset += a2offs(&nn->args->argv[i]);  
   
         /*          /*
          * If -ragged or -filled are specified, the block does nothing           * If -ragged or -filled are specified, the block does nothing
          * but change the indentation.  If -unfilled or -literal are           * but change the indentation.  If -unfilled or -literal are
Line 1625  termp_bd_pre(DECL_ARGS)
Line 1622  termp_bd_pre(DECL_ARGS)
          * lines are allowed.           * lines are allowed.
          */           */
   
         if (DISP_literal != n->data.disp &&          if (DISP_literal != n->data.Bd.type &&
                         DISP_unfilled != n->data.disp)                          DISP_unfilled != n->data.Bd.type)
                 return(1);                  return(1);
   
         tabwidth = p->tabwidth;          tabwidth = p->tabwidth;
Line 1663  termp_bd_post(DECL_ARGS)
Line 1660  termp_bd_post(DECL_ARGS)
         rm = p->rmargin;          rm = p->rmargin;
         rmax = p->maxrmargin;          rmax = p->maxrmargin;
   
         if (DISP_literal == n->data.disp ||          if (DISP_literal == n->data.Bd.type ||
                         DISP_unfilled == n->data.disp)                          DISP_unfilled == n->data.Bd.type)
                 p->rmargin = p->maxrmargin = TERM_MAXMARGIN;                  p->rmargin = p->maxrmargin = TERM_MAXMARGIN;
   
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;

Legend:
Removed from v.1.147  
changed lines
  Added in v.1.148

CVSweb