[BACK]Return to term.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/term.c between version 1.34 and 1.35

version 1.34, 2009/03/02 12:09:32 version 1.35, 2009/03/02 17:14:46
Line 1051  static int
Line 1051  static int
 termp_bd_pre(DECL_ARGS)  termp_bd_pre(DECL_ARGS)
 {  {
         const struct mdoc_block *bl;          const struct mdoc_block *bl;
         const struct mdoc_node *n;          const struct mdoc_node  *n;
         int              i;          int              i, type;
   
         if (MDOC_BLOCK == node->type) {          if (MDOC_BLOCK == node->type) {
                 if (node->prev)                  if (node->prev)
Line 1061  termp_bd_pre(DECL_ARGS)
Line 1061  termp_bd_pre(DECL_ARGS)
         } else if (MDOC_BODY != node->type)          } else if (MDOC_BODY != node->type)
                 return(1);                  return(1);
   
         assert(MDOC_BLOCK == node->parent->type);  
         pair->offset = p->offset;          pair->offset = p->offset;
   
         bl = &node->parent->data.block;          bl = &node->parent->data.block;
   
           for (type = -1, i = 0; i < (int)bl->argc; i++) {
                   switch (bl->argv[i].arg) {
                   case (MDOC_Ragged):
                           /* FALLTHROUGH */
                   case (MDOC_Filled):
                           /* FALLTHROUGH */
                   case (MDOC_Unfilled):
                           /* FALLTHROUGH */
                   case (MDOC_Literal):
                           type = bl->argv[i].arg;
                           i = (int)bl->argc;
                           break;
                   default:
                           errx(1, "display type not supported");
                   }
           }
   
           assert(-1 != type);
   
         i = arg_getattr(MDOC_Offset, bl->argc, bl->argv);          i = arg_getattr(MDOC_Offset, bl->argc, bl->argv);
         if (-1 != i) {          if (-1 != i) {
                 assert(1 == bl->argv[i].sz);                  assert(1 == bl->argv[i].sz);
                 p->offset += arg_offset(&bl->argv[i]);                  p->offset += arg_offset(&bl->argv[i]);
         }          }
   
   
           switch (type) {
           case (MDOC_Literal):
                   /* FALLTHROUGH */
           case (MDOC_Unfilled):
                   break;
           default:
                   return(1);
           }
   
         p->flags |= TERMP_LITERAL;          p->flags |= TERMP_LITERAL;
   
         for (n = node->child; n; n = n->next) {          for (n = node->child; n; n = n->next) {
                 if (MDOC_TEXT != n->type)                  if (MDOC_TEXT != n->type) {
                         errx(1, "non-text displays unsupported");                          warnx("non-text children not yet allowed");
                 if ((*n->data.text.string)) {                          continue;
                         word(p, n->data.text.string);                  }
                         flushln(p);                  word(p, n->data.text.string);
                 } else                  flushln(p);
                         vspace(p);  
   
         }          }
   
         p->flags &= ~TERMP_LITERAL;  
         return(0);          return(0);
 }  }
   
Line 1097  termp_bd_post(DECL_ARGS)
Line 1121  termp_bd_post(DECL_ARGS)
   
         if (MDOC_BODY != node->type)          if (MDOC_BODY != node->type)
                 return;                  return;
         newln(p);  
           if ( ! (p->flags & TERMP_LITERAL))
                   flushln(p);
   
           p->flags &= ~TERMP_LITERAL;
         p->offset = pair->offset;          p->offset = pair->offset;
 }  }
   

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

CVSweb