[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.146 and 1.147

version 1.146, 2010/06/10 23:24:37 version 1.147, 2010/06/12 10:09:19
Line 60  static int   arg_hasattr(int, const struct mdoc_node *
Line 60  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,
                         const struct mdoc_node *);                          const struct mdoc_node *);
 static  int       arg_getattr(int, const struct mdoc_node *);  static  int       arg_getattr(int, const struct mdoc_node *);
 static  int       arg_disptype(const struct mdoc_node *);  
 static  void      print_bvspace(struct termp *,  static  void      print_bvspace(struct termp *,
                         const struct mdoc_node *,                          const struct mdoc_node *,
                         const struct mdoc_node *);                          const struct mdoc_node *);
Line 489  a2width(const struct mdoc_argv *arg, int pos)
Line 488  a2width(const struct mdoc_argv *arg, int pos)
 }  }
   
   
 static int  
 arg_disptype(const struct mdoc_node *n)  
 {  
         int              i, len;  
   
         assert(MDOC_BLOCK == n->type);  
   
         len = (int)(n->args ? n->args->argc : 0);  
   
         for (i = 0; i < len; i++)  
                 switch (n->args->argv[i].arg) {  
                 case (MDOC_Centred):  
                         /* FALLTHROUGH */  
                 case (MDOC_Ragged):  
                         /* FALLTHROUGH */  
                 case (MDOC_Filled):  
                         /* FALLTHROUGH */  
                 case (MDOC_Unfilled):  
                         /* FALLTHROUGH */  
                 case (MDOC_Literal):  
                         return(n->args->argv[i].arg);  
                 default:  
                         break;  
                 }  
   
         return(-1);  
 }  
   
   
 static size_t  static size_t
 a2offs(const struct mdoc_argv *arg)  a2offs(const struct mdoc_argv *arg)
 {  {
Line 1632  static int
Line 1602  static int
 termp_bd_pre(DECL_ARGS)  termp_bd_pre(DECL_ARGS)
 {  {
         size_t                   tabwidth;          size_t                   tabwidth;
         int                      i, type;          int                      i;
         size_t                   rm, rmax;          size_t                   rm, rmax;
         const struct mdoc_node  *nn;          const struct mdoc_node  *nn;
   
Line 1644  termp_bd_pre(DECL_ARGS)
Line 1614  termp_bd_pre(DECL_ARGS)
   
         nn = n->parent;          nn = n->parent;
   
         type = arg_disptype(nn);  
         assert(-1 != type);  
   
         if (-1 != (i = arg_getattr(MDOC_Offset, nn)))          if (-1 != (i = arg_getattr(MDOC_Offset, nn)))
                 p->offset += a2offs(&nn->args->argv[i]);                  p->offset += a2offs(&nn->args->argv[i]);
   
Line 1658  termp_bd_pre(DECL_ARGS)
Line 1625  termp_bd_pre(DECL_ARGS)
          * lines are allowed.           * lines are allowed.
          */           */
   
         if (MDOC_Literal != type && MDOC_Unfilled != type)          if (DISP_literal != n->data.disp &&
                           DISP_unfilled != n->data.disp)
                 return(1);                  return(1);
   
         tabwidth = p->tabwidth;          tabwidth = p->tabwidth;
Line 1675  termp_bd_pre(DECL_ARGS)
Line 1643  termp_bd_pre(DECL_ARGS)
                     NULL == nn->next)                      NULL == nn->next)
                         term_flushln(p);                          term_flushln(p);
         }          }
         p->tabwidth = tabwidth;  
   
           p->tabwidth = tabwidth;
         p->rmargin = rm;          p->rmargin = rm;
         p->maxrmargin = rmax;          p->maxrmargin = rmax;
         return(0);          return(0);
Line 1687  termp_bd_pre(DECL_ARGS)
Line 1655  termp_bd_pre(DECL_ARGS)
 static void  static void
 termp_bd_post(DECL_ARGS)  termp_bd_post(DECL_ARGS)
 {  {
         int              type;  
         size_t           rm, rmax;          size_t           rm, rmax;
   
         if (MDOC_BODY != n->type)          if (MDOC_BODY != n->type)
                 return;                  return;
   
         type = arg_disptype(n->parent);  
         assert(-1 != type);  
   
         rm = p->rmargin;          rm = p->rmargin;
         rmax = p->maxrmargin;          rmax = p->maxrmargin;
   
         if (MDOC_Literal == type || MDOC_Unfilled == type)          if (DISP_literal == n->data.disp ||
                           DISP_unfilled == n->data.disp)
                 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.146  
changed lines
  Added in v.1.147

CVSweb