[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.59 and 1.60

version 1.59, 2009/07/23 09:40:25 version 1.60, 2009/07/24 11:54:54
Line 1582  termp_va_pre(DECL_ARGS)
Line 1582  termp_va_pre(DECL_ARGS)
 static int  static int
 termp_bd_pre(DECL_ARGS)  termp_bd_pre(DECL_ARGS)
 {  {
         int              i, type, ln;          int              i, type;
   
         /*          /*
          * This is fairly tricky due primarily to crappy documentation.           * This is fairly tricky due primarily to crappy documentation.
Line 1601  termp_bd_pre(DECL_ARGS)
Line 1601  termp_bd_pre(DECL_ARGS)
         } else if (MDOC_BODY != node->type)          } else if (MDOC_BODY != node->type)
                 return(1);                  return(1);
   
         /* FIXME: display type should be mandated by parser. */          assert(node->parent->args);
   
         if (NULL == node->parent->args)          for (type = -1, i = 0; -1 == type &&
                 errx(1, "missing display type");  
   
         for (type = -1, i = 0;  
                         i < (int)node->parent->args->argc; i++) {                          i < (int)node->parent->args->argc; i++) {
                 switch (node->parent->args->argv[i].arg) {                  switch (node->parent->args->argv[i].arg) {
                 case (MDOC_Ragged):                  case (MDOC_Ragged):
Line 1617  termp_bd_pre(DECL_ARGS)
Line 1614  termp_bd_pre(DECL_ARGS)
                         /* FALLTHROUGH */                          /* FALLTHROUGH */
                 case (MDOC_Literal):                  case (MDOC_Literal):
                         type = node->parent->args->argv[i].arg;                          type = node->parent->args->argv[i].arg;
                         i = (int)node->parent->args->argc;  
                         break;                          break;
                 default:                  default:
                         break;                          break;
                 }                  }
         }          }
   
           assert(type > -1);
   
         if (NULL == node->parent->args)  
                 errx(1, "missing display type");  
   
         i = arg_getattr(MDOC_Offset, node->parent);          i = arg_getattr(MDOC_Offset, node->parent);
         if (-1 != i) {          if (-1 != i)
                 if (1 != node->parent->args->argv[i].sz)  
                         errx(1, "expected single value");  
                 p->offset += arg_offset(&node->parent->args->argv[i]);                  p->offset += arg_offset(&node->parent->args->argv[i]);
         }  
   
         switch (type) {          switch (type) {
         case (MDOC_Literal):          case (MDOC_Literal):
Line 1643  termp_bd_pre(DECL_ARGS)
Line 1635  termp_bd_pre(DECL_ARGS)
                 return(1);                  return(1);
         }          }
   
         /*  
          * Tricky.  Iterate through all children.  If we're on a  
          * different parse line, append a newline and then the contents.  
          * Ew.  
          */  
   
         ln = node->child ? node->child->line : 0;  
   
         for (node = node->child; node; node = node->next) {          for (node = node->child; node; node = node->next) {
                 if (ln < node->line) {                  p->flags |= TERMP_NOSPACE;
                         term_flushln(p);  
                         p->flags |= TERMP_NOSPACE;  
                 }  
                 ln = node->line;  
                 print_node(p, pair, meta, node);                  print_node(p, pair, meta, node);
                   if (node->next)
                           term_flushln(p);
         }          }
   
         return(0);          return(0);
Line 1671  termp_bd_post(DECL_ARGS)
Line 1653  termp_bd_post(DECL_ARGS)
   
         if (MDOC_BODY != node->type)          if (MDOC_BODY != node->type)
                 return;                  return;
           p->flags |= TERMP_NOSPACE;
         term_flushln(p);          term_flushln(p);
 }  }
   

Legend:
Removed from v.1.59  
changed lines
  Added in v.1.60

CVSweb