[BACK]Return to mdoc_term.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mandoc

Diff for /src/usr.bin/mandoc/mdoc_term.c between version 1.212 and 1.213

version 1.212, 2015/03/09 17:41:36 version 1.213, 2015/04/02 21:03:18
Line 8 
Line 8 
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
  * copyright notice and this permission notice appear in all copies.   * copyright notice and this permission notice appear in all copies.
  *   *
  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR   * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES   * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
Line 26 
Line 26 
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
   
 #include "mandoc.h"  
 #include "mandoc_aux.h"  #include "mandoc_aux.h"
   #include "mandoc.h"
   #include "roff.h"
   #include "mdoc.h"
 #include "out.h"  #include "out.h"
 #include "term.h"  #include "term.h"
 #include "mdoc.h"  
 #include "main.h"  #include "main.h"
   
 struct  termpair {  struct  termpair {
Line 329 
Line 330 
          */           */
   
         switch (n->type) {          switch (n->type) {
         case MDOC_TEXT:          case ROFFT_TEXT:
                 if (' ' == *n->string && MDOC_LINE & n->flags)                  if (' ' == *n->string && MDOC_LINE & n->flags)
                         term_newln(p);                          term_newln(p);
                 if (MDOC_DELIMC & n->flags)                  if (MDOC_DELIMC & n->flags)
Line 338 
Line 339 
                 if (MDOC_DELIMO & n->flags)                  if (MDOC_DELIMO & n->flags)
                         p->flags |= TERMP_NOSPACE;                          p->flags |= TERMP_NOSPACE;
                 break;                  break;
         case MDOC_EQN:          case ROFFT_EQN:
                 if ( ! (n->flags & MDOC_LINE))                  if ( ! (n->flags & MDOC_LINE))
                         p->flags |= TERMP_NOSPACE;                          p->flags |= TERMP_NOSPACE;
                 term_eqn(p, n->eqn);                  term_eqn(p, n->eqn);
                 if (n->next != NULL && ! (n->next->flags & MDOC_LINE))                  if (n->next != NULL && ! (n->next->flags & MDOC_LINE))
                         p->flags |= TERMP_NOSPACE;                          p->flags |= TERMP_NOSPACE;
                 break;                  break;
         case MDOC_TBL:          case ROFFT_TBL:
                 if (p->tbl.cols == NULL)                  if (p->tbl.cols == NULL)
                         term_newln(p);                          term_newln(p);
                 term_tbl(p, n->span);                  term_tbl(p, n->span);
Line 365 
Line 366 
             (ENDBODY_NOT == n->end ? n : n->body)->prev_font);              (ENDBODY_NOT == n->end ? n : n->body)->prev_font);
   
         switch (n->type) {          switch (n->type) {
         case MDOC_TEXT:          case ROFFT_TEXT:
                 break;                  break;
         case MDOC_TBL:          case ROFFT_TBL:
                 break;                  break;
         case MDOC_EQN:          case ROFFT_EQN:
                 break;                  break;
         default:          default:
                 if ( ! termacts[n->tok].post || MDOC_ENDED & n->flags)                  if ( ! termacts[n->tok].post || MDOC_ENDED & n->flags)
Line 566 
Line 567 
         while (nn->prev == NULL) {          while (nn->prev == NULL) {
                 do {                  do {
                         nn = nn->parent;                          nn = nn->parent;
                         if (nn->type == MDOC_ROOT)                          if (nn->type == ROFFT_ROOT)
                                 return;                                  return;
                 } while (nn->type != MDOC_BLOCK);                  } while (nn->type != ROFFT_BLOCK);
                 if (nn->tok == MDOC_Sh || nn->tok == MDOC_Ss)                  if (nn->tok == MDOC_Sh || nn->tok == MDOC_Ss)
                         return;                          return;
                 if (nn->tok == MDOC_It &&                  if (nn->tok == MDOC_It &&
Line 612 
Line 613 
         int                     i, offset, width;          int                     i, offset, width;
         enum mdoc_list          type;          enum mdoc_list          type;
   
         if (MDOC_BLOCK == n->type) {          if (n->type == ROFFT_BLOCK) {
                 print_bvspace(p, n->parent->parent, n);                  print_bvspace(p, n->parent->parent, n);
                 return(1);                  return(1);
         }          }
Line 664 
Line 665 
   
         switch (type) {          switch (type) {
         case LIST_column:          case LIST_column:
                 if (MDOC_HEAD == n->type)                  if (n->type == ROFFT_HEAD)
                         break;                          break;
   
                 /*                  /*
Line 681 
Line 682 
                     ncols == 5 ? term_len(p, 3) : term_len(p, 1);                      ncols == 5 ? term_len(p, 3) : term_len(p, 1);
   
                 /*                  /*
                  * Calculate the offset by applying all prior MDOC_BODY,                   * Calculate the offset by applying all prior ROFFT_BODY,
                  * so we stop at the MDOC_HEAD (NULL == nn->prev).                   * so we stop at the ROFFT_HEAD (nn->prev == NULL).
                  */                   */
   
                 for (i = 0, nn = n->prev;                  for (i = 0, nn = n->prev;
Line 732 
Line 733 
   
         switch (type) {          switch (type) {
         case LIST_diag:          case LIST_diag:
                 if (MDOC_BODY == n->type)                  if (n->type == ROFFT_BODY)
                         term_word(p, "\\ \\ ");                          term_word(p, "\\ \\ ");
                 break;                  break;
         case LIST_inset:          case LIST_inset:
                 if (MDOC_BODY == n->type && n->parent->head->nchild)                  if (n->type == ROFFT_BODY && n->parent->head->nchild)
                         term_word(p, "\\ ");                          term_word(p, "\\ ");
                 break;                  break;
         default:          default:
Line 747 
Line 748 
   
         switch (type) {          switch (type) {
         case LIST_diag:          case LIST_diag:
                 if (MDOC_HEAD == n->type)                  if (n->type == ROFFT_HEAD)
                         term_fontpush(p, TERMFONT_BOLD);                          term_fontpush(p, TERMFONT_BOLD);
                 break;                  break;
         default:          default:
Line 775 
Line 776 
         case LIST_hyphen:          case LIST_hyphen:
                 if (width <= (int)term_len(p, 2))                  if (width <= (int)term_len(p, 2))
                         p->flags |= TERMP_HANG;                          p->flags |= TERMP_HANG;
                 if (MDOC_HEAD != n->type)                  if (n->type != ROFFT_HEAD)
                         break;                          break;
                 p->flags |= TERMP_NOBREAK;                  p->flags |= TERMP_NOBREAK;
                 p->trailspace = 1;                  p->trailspace = 1;
                 break;                  break;
         case LIST_hang:          case LIST_hang:
                 if (MDOC_HEAD != n->type)                  if (n->type != ROFFT_HEAD)
                         break;                          break;
   
                 /*                  /*
Line 800 
Line 801 
                 p->trailspace = 1;                  p->trailspace = 1;
                 break;                  break;
         case LIST_tag:          case LIST_tag:
                 if (MDOC_HEAD != n->type)                  if (n->type != ROFFT_HEAD)
                         break;                          break;
   
                 p->flags |= TERMP_NOBREAK | TERMP_BRIND;                  p->flags |= TERMP_NOBREAK | TERMP_BRIND;
Line 810 
Line 811 
                         p->flags |= TERMP_DANGLE;                          p->flags |= TERMP_DANGLE;
                 break;                  break;
         case LIST_column:          case LIST_column:
                 if (MDOC_HEAD == n->type)                  if (n->type == ROFFT_HEAD)
                         break;                          break;
   
                 if (NULL == n->next) {                  if (NULL == n->next) {
Line 823 
Line 824 
   
                 break;                  break;
         case LIST_diag:          case LIST_diag:
                 if (MDOC_HEAD != n->type)                  if (n->type != ROFFT_HEAD)
                         break;                          break;
                 p->flags |= TERMP_NOBREAK | TERMP_BRIND;                  p->flags |= TERMP_NOBREAK | TERMP_BRIND;
                 p->trailspace = 1;                  p->trailspace = 1;
Line 847 
Line 848 
                  * don't want to recalculate rmargin and offsets when                   * don't want to recalculate rmargin and offsets when
                  * using `Bd' or `Bl' within `-hang' overstep lists.                   * using `Bd' or `Bl' within `-hang' overstep lists.
                  */                   */
                 if (MDOC_HEAD == n->type &&                  if (n->type == ROFFT_HEAD &&
                     NULL != n->next &&                      NULL != n->next &&
                     NULL != n->next->child &&                      NULL != n->next->child &&
                     (MDOC_Bl == n->next->child->tok ||                      (MDOC_Bl == n->next->child->tok ||
Line 863 
Line 864 
         case LIST_hyphen:          case LIST_hyphen:
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case LIST_tag:          case LIST_tag:
                 if (MDOC_HEAD == n->type)                  if (n->type == ROFFT_HEAD)
                         p->rmargin = p->offset + width;                          p->rmargin = p->offset + width;
                 else                  else
                         p->offset += width;                          p->offset += width;
Line 875 
Line 876 
                  * XXX - this behaviour is not documented: the                   * XXX - this behaviour is not documented: the
                  * right-most column is filled to the right margin.                   * right-most column is filled to the right margin.
                  */                   */
                 if (MDOC_HEAD == n->type)                  if (n->type == ROFFT_HEAD)
                         break;                          break;
                 if (NULL == n->next && p->rmargin < p->maxrmargin)                  if (NULL == n->next && p->rmargin < p->maxrmargin)
                         p->rmargin = p->maxrmargin;                          p->rmargin = p->maxrmargin;
Line 889 
Line 890 
          * HEAD character (temporarily bold, in some cases).           * HEAD character (temporarily bold, in some cases).
          */           */
   
         if (MDOC_HEAD == n->type)          if (n->type == ROFFT_HEAD)
                 switch (type) {                  switch (type) {
                 case LIST_bullet:                  case LIST_bullet:
                         term_fontpush(p, TERMFONT_BOLD);                          term_fontpush(p, TERMFONT_BOLD);
Line 927 
Line 928 
         case LIST_hyphen:          case LIST_hyphen:
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case LIST_enum:          case LIST_enum:
                 if (MDOC_HEAD == n->type)                  if (n->type == ROFFT_HEAD)
                         return(0);                          return(0);
                 break;                  break;
         case LIST_column:          case LIST_column:
                 if (MDOC_HEAD == n->type)                  if (n->type == ROFFT_HEAD)
                         return(0);                          return(0);
                 break;                  break;
         default:          default:
Line 946 
Line 947 
 {  {
         enum mdoc_list     type;          enum mdoc_list     type;
   
         if (MDOC_BLOCK == n->type)          if (n->type == ROFFT_BLOCK)
                 return;                  return;
   
         type = n->parent->parent->parent->norm->Bl.type;          type = n->parent->parent->parent->norm->Bl.type;
Line 957 
Line 958 
         case LIST_diag:          case LIST_diag:
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case LIST_inset:          case LIST_inset:
                 if (MDOC_BODY == n->type)                  if (n->type == ROFFT_BODY)
                         term_newln(p);                          term_newln(p);
                 break;                  break;
         case LIST_column:          case LIST_column:
                 if (MDOC_BODY == n->type)                  if (n->type == ROFFT_BODY)
                         term_flushln(p);                          term_flushln(p);
                 break;                  break;
         default:          default:
Line 985 
Line 986 
 {  {
         const char      *cp;          const char      *cp;
   
         if (MDOC_BLOCK == n->type) {          if (n->type == ROFFT_BLOCK) {
                 p->flags |= TERMP_PREKEEP;                  p->flags |= TERMP_PREKEEP;
                 return(1);                  return(1);
         }          }
   
         if (MDOC_BODY == n->type) {          if (n->type == ROFFT_BODY) {
                 if (NULL == n->child)                  if (NULL == n->child)
                         return(0);                          return(0);
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
Line 1009 
Line 1010 
         if (NULL == n->child && NULL == meta->name)          if (NULL == n->child && NULL == meta->name)
                 return(0);                  return(0);
   
         if (MDOC_HEAD == n->type)          if (n->type == ROFFT_HEAD)
                 synopsis_pre(p, n->parent);                  synopsis_pre(p, n->parent);
   
         if (MDOC_HEAD == n->type &&          if (n->type == ROFFT_HEAD &&
             NULL != n->next && NULL != n->next->child) {              NULL != n->next && NULL != n->next->child) {
                 p->flags |= TERMP_NOSPACE | TERMP_NOBREAK | TERMP_BRIND;                  p->flags |= TERMP_NOSPACE | TERMP_NOBREAK | TERMP_BRIND;
                 p->trailspace = 1;                  p->trailspace = 1;
                 p->rmargin = p->offset + term_len(p, 1);                  p->rmargin = p->offset + term_len(p, 1);
                 if (NULL == n->child) {                  if (NULL == n->child) {
                         p->rmargin += term_strlen(p, meta->name);                          p->rmargin += term_strlen(p, meta->name);
                 } else if (MDOC_TEXT == n->child->type) {                  } else if (n->child->type == ROFFT_TEXT) {
                         p->rmargin += term_strlen(p, n->child->string);                          p->rmargin += term_strlen(p, n->child->string);
                         if (n->child->next)                          if (n->child->next)
                                 p->flags |= TERMP_HANG;                                  p->flags |= TERMP_HANG;
Line 1039 
Line 1040 
 termp_nm_post(DECL_ARGS)  termp_nm_post(DECL_ARGS)
 {  {
   
         if (MDOC_BLOCK == n->type) {          if (n->type == ROFFT_BLOCK) {
                 p->flags &= ~(TERMP_KEEP | TERMP_PREKEEP);                  p->flags &= ~(TERMP_KEEP | TERMP_PREKEEP);
         } else if (MDOC_HEAD == n->type &&          } else if (n->type == ROFFT_HEAD &&
             NULL != n->next && NULL != n->next->child) {              NULL != n->next && NULL != n->next->child) {
                 term_flushln(p);                  term_flushln(p);
                 p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND | TERMP_HANG);                  p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND | TERMP_HANG);
                 p->trailspace = 0;                  p->trailspace = 0;
         } else if (MDOC_BODY == n->type && n->child)          } else if (n->type == ROFFT_BODY && n->child != NULL)
                 term_flushln(p);                  term_flushln(p);
 }  }
   
Line 1059 
Line 1060 
   
         if ( ! (n->nchild == 0 &&          if ( ! (n->nchild == 0 &&
             (n->next == NULL ||              (n->next == NULL ||
              n->next->type == MDOC_TEXT ||               n->next->type == ROFFT_TEXT ||
              n->next->flags & MDOC_LINE)))               n->next->flags & MDOC_LINE)))
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
   
Line 1116 
Line 1117 
   
         if (SEC_SEE_ALSO != n->sec)          if (SEC_SEE_ALSO != n->sec)
                 return(1);                  return(1);
         if (MDOC_BLOCK == n->type && n->prev)          if (n->type == ROFFT_BLOCK && n->prev != NULL)
                 term_vspace(p);                  term_vspace(p);
         return(1);          return(1);
 }  }
Line 1212 
Line 1213 
 termp_nd_pre(DECL_ARGS)  termp_nd_pre(DECL_ARGS)
 {  {
   
         if (n->type == MDOC_BODY)          if (n->type == ROFFT_BODY)
                 term_word(p, "\\(en");                  term_word(p, "\\(en");
         return(1);          return(1);
 }  }
Line 1221 
Line 1222 
 termp_bl_pre(DECL_ARGS)  termp_bl_pre(DECL_ARGS)
 {  {
   
         return(MDOC_HEAD != n->type);          return(n->type != ROFFT_HEAD);
 }  }
   
 static void  static void
 termp_bl_post(DECL_ARGS)  termp_bl_post(DECL_ARGS)
 {  {
   
         if (MDOC_BLOCK == n->type)          if (n->type == ROFFT_BLOCK)
                 term_newln(p);                  term_newln(p);
 }  }
   
Line 1239 
Line 1240 
         if (NULL == (n = n->child))          if (NULL == (n = n->child))
                 return(0);                  return(0);
   
         assert(MDOC_TEXT == n->type);          assert(n->type == ROFFT_TEXT);
         term_word(p, n->string);          term_word(p, n->string);
   
         if (NULL == (n = n->next))          if (NULL == (n = n->next))
Line 1249 
Line 1250 
         term_word(p, "(");          term_word(p, "(");
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
   
         assert(MDOC_TEXT == n->type);          assert(n->type == ROFFT_TEXT);
         term_word(p, n->string);          term_word(p, n->string);
   
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
Line 1319 
Line 1320 
 termp_vt_pre(DECL_ARGS)  termp_vt_pre(DECL_ARGS)
 {  {
   
         if (MDOC_ELEM == n->type) {          if (n->type == ROFFT_ELEM) {
                 synopsis_pre(p, n);                  synopsis_pre(p, n);
                 return(termp_under_pre(p, pair, meta, n));                  return(termp_under_pre(p, pair, meta, n));
         } else if (MDOC_BLOCK == n->type) {          } else if (n->type == ROFFT_BLOCK) {
                 synopsis_pre(p, n);                  synopsis_pre(p, n);
                 return(1);                  return(1);
         } else if (MDOC_HEAD == n->type)          } else if (n->type == ROFFT_HEAD)
                 return(0);                  return(0);
   
         return(termp_under_pre(p, pair, meta, n));          return(termp_under_pre(p, pair, meta, n));
Line 1359 
Line 1360 
 {  {
   
         switch (n->type) {          switch (n->type) {
         case MDOC_BLOCK:          case ROFFT_BLOCK:
                 /*                  /*
                  * Vertical space before sections, except                   * Vertical space before sections, except
                  * when the previous section was empty.                   * when the previous section was empty.
Line 1370 
Line 1371 
                      n->prev->body->child != NULL))                       n->prev->body->child != NULL))
                         term_vspace(p);                          term_vspace(p);
                 break;                  break;
         case MDOC_HEAD:          case ROFFT_HEAD:
                 term_fontpush(p, TERMFONT_BOLD);                  term_fontpush(p, TERMFONT_BOLD);
                 break;                  break;
         case MDOC_BODY:          case ROFFT_BODY:
                 p->offset = term_len(p, p->defindent);                  p->offset = term_len(p, p->defindent);
                 if (SEC_AUTHORS == n->sec)                  if (SEC_AUTHORS == n->sec)
                         p->flags &= ~(TERMP_SPLIT|TERMP_NOSPLIT);                          p->flags &= ~(TERMP_SPLIT|TERMP_NOSPLIT);
Line 1389 
Line 1390 
 {  {
   
         switch (n->type) {          switch (n->type) {
         case MDOC_HEAD:          case ROFFT_HEAD:
                 term_newln(p);                  term_newln(p);
                 break;                  break;
         case MDOC_BODY:          case ROFFT_BODY:
                 term_newln(p);                  term_newln(p);
                 p->offset = 0;                  p->offset = 0;
                 break;                  break;
Line 1431 
Line 1432 
 termp_d1_pre(DECL_ARGS)  termp_d1_pre(DECL_ARGS)
 {  {
   
         if (MDOC_BLOCK != n->type)          if (n->type != ROFFT_BLOCK)
                 return(1);                  return(1);
         term_newln(p);          term_newln(p);
         p->offset += term_len(p, p->defindent + 1);          p->offset += term_len(p, p->defindent + 1);
Line 1467 
Line 1468 
                 p->flags |= TERMP_NOBREAK | TERMP_BRIND | TERMP_HANG;                  p->flags |= TERMP_NOBREAK | TERMP_BRIND | TERMP_HANG;
         }          }
   
         assert(MDOC_TEXT == n->type);          assert(n->type == ROFFT_TEXT);
         term_fontpush(p, TERMFONT_BOLD);          term_fontpush(p, TERMFONT_BOLD);
         term_word(p, n->string);          term_word(p, n->string);
         term_fontpop(p);          term_fontpop(p);
Line 1484 
Line 1485 
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
   
         for (n = n->next; n; n = n->next) {          for (n = n->next; n; n = n->next) {
                 assert(MDOC_TEXT == n->type);                  assert(n->type == ROFFT_TEXT);
                 term_fontpush(p, TERMFONT_UNDER);                  term_fontpush(p, TERMFONT_UNDER);
                 if (pretty)                  if (pretty)
                         p->flags |= TERMP_NBRWORD;                          p->flags |= TERMP_NBRWORD;
Line 1541 
Line 1542 
         struct mdoc_node        *nn;          struct mdoc_node        *nn;
         int                      offset;          int                      offset;
   
         if (MDOC_BLOCK == n->type) {          if (n->type == ROFFT_BLOCK) {
                 print_bvspace(p, n, n);                  print_bvspace(p, n, n);
                 return(1);                  return(1);
         } else if (MDOC_HEAD == n->type)          } else if (n->type == ROFFT_HEAD)
                 return(0);                  return(0);
   
         /* Handle the -offset argument. */          /* Handle the -offset argument. */
Line 1588 
Line 1589 
   
         for (nn = n->child; nn; nn = nn->next) {          for (nn = n->child; nn; nn = nn->next) {
                 if (DISP_centered == n->norm->Bd.type) {                  if (DISP_centered == n->norm->Bd.type) {
                         if (MDOC_TEXT == nn->type) {                          if (nn->type == ROFFT_TEXT) {
                                 len = term_strlen(p, nn->string);                                  len = term_strlen(p, nn->string);
                                 p->offset = len >= rm ? 0 :                                  p->offset = len >= rm ? 0 :
                                     lm + len >= rm ? rm - len :                                      lm + len >= rm ? rm - len :
Line 1641 
Line 1642 
 {  {
         size_t           rm, rmax;          size_t           rm, rmax;
   
         if (MDOC_BODY != n->type)          if (n->type != ROFFT_BODY)
                 return;                  return;
   
         rm = p->rmargin;          rm = p->rmargin;
Line 1735 
Line 1736 
 {  {
   
         switch (n->type) {          switch (n->type) {
         case MDOC_BLOCK:          case ROFFT_BLOCK:
                 term_newln(p);                  term_newln(p);
                 if (n->prev)                  if (n->prev)
                         term_vspace(p);                          term_vspace(p);
                 break;                  break;
         case MDOC_HEAD:          case ROFFT_HEAD:
                 term_fontpush(p, TERMFONT_BOLD);                  term_fontpush(p, TERMFONT_BOLD);
                 p->offset = term_len(p, (p->defindent+1)/2);                  p->offset = term_len(p, (p->defindent+1)/2);
                 break;                  break;
         case MDOC_BODY:          case ROFFT_BODY:
                 p->offset = term_len(p, p->defindent);                  p->offset = term_len(p, p->defindent);
                 break;                  break;
         default:          default:
Line 1758 
Line 1759 
 termp_ss_post(DECL_ARGS)  termp_ss_post(DECL_ARGS)
 {  {
   
         if (n->type == MDOC_HEAD || n->type == MDOC_BODY)          if (n->type == ROFFT_HEAD || n->type == ROFFT_BODY)
                 term_newln(p);                  term_newln(p);
 }  }
   
Line 1849 
Line 1850 
 termp_quote_pre(DECL_ARGS)  termp_quote_pre(DECL_ARGS)
 {  {
   
         if (MDOC_BODY != n->type && MDOC_ELEM != n->type)          if (n->type != ROFFT_BODY && n->type != ROFFT_ELEM)
                 return(1);                  return(1);
   
         switch (n->tok) {          switch (n->tok) {
Line 1916 
Line 1917 
 termp_quote_post(DECL_ARGS)  termp_quote_post(DECL_ARGS)
 {  {
   
         if (n->type != MDOC_BODY && n->type != MDOC_ELEM)          if (n->type != ROFFT_BODY && n->type != ROFFT_ELEM)
                 return;                  return;
   
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
Line 1984 
Line 1985 
 termp_eo_pre(DECL_ARGS)  termp_eo_pre(DECL_ARGS)
 {  {
   
         if (n->type != MDOC_BODY)          if (n->type != ROFFT_BODY)
                 return(1);                  return(1);
   
         if (n->end == ENDBODY_NOT &&          if (n->end == ENDBODY_NOT &&
Line 2005 
Line 2006 
 {  {
         int      body, tail;          int      body, tail;
   
         if (n->type != MDOC_BODY)          if (n->type != ROFFT_BODY)
                 return;                  return;
   
         if (n->end != ENDBODY_NOT) {          if (n->end != ENDBODY_NOT) {
Line 2032 
Line 2033 
   
         pretty = MDOC_SYNPRETTY & n->flags;          pretty = MDOC_SYNPRETTY & n->flags;
   
         if (MDOC_BLOCK == n->type) {          if (n->type == ROFFT_BLOCK) {
                 synopsis_pre(p, n);                  synopsis_pre(p, n);
                 return(1);                  return(1);
         } else if (MDOC_BODY == n->type) {          } else if (n->type == ROFFT_BODY) {
                 if (pretty) {                  if (pretty) {
                         rmargin = p->rmargin;                          rmargin = p->rmargin;
                         p->rmargin = p->offset + term_len(p, 4);                          p->rmargin = p->offset + term_len(p, 4);
Line 2070 
Line 2071 
 termp_fo_post(DECL_ARGS)  termp_fo_post(DECL_ARGS)
 {  {
   
         if (MDOC_BODY != n->type)          if (n->type != ROFFT_BODY)
                 return;                  return;
   
         p->flags |= TERMP_NOSPACE;          p->flags |= TERMP_NOSPACE;
Line 2087 
Line 2088 
 termp_bf_pre(DECL_ARGS)  termp_bf_pre(DECL_ARGS)
 {  {
   
         if (MDOC_HEAD == n->type)          if (n->type == ROFFT_HEAD)
                 return(0);                  return(0);
         else if (MDOC_BODY != n->type)          else if (n->type != ROFFT_BODY)
                 return(1);                  return(1);
   
         if (FONT_Em == n->norm->Bf.font)          if (FONT_Em == n->norm->Bf.font)
Line 2195 
Line 2196 
 {  {
   
         switch (n->type) {          switch (n->type) {
         case MDOC_BLOCK:          case ROFFT_BLOCK:
                 break;                  break;
         case MDOC_HEAD:          case ROFFT_HEAD:
                 return(0);                  return(0);
         case MDOC_BODY:          case ROFFT_BODY:
                 if (n->parent->args || 0 == n->prev->nchild)                  if (n->parent->args || 0 == n->prev->nchild)
                         p->flags |= TERMP_PREKEEP;                          p->flags |= TERMP_PREKEEP;
                 break;                  break;
Line 2215 
Line 2216 
 termp_bk_post(DECL_ARGS)  termp_bk_post(DECL_ARGS)
 {  {
   
         if (MDOC_BODY == n->type)          if (n->type == ROFFT_BODY)
                 p->flags &= ~(TERMP_KEEP | TERMP_PREKEEP);                  p->flags &= ~(TERMP_KEEP | TERMP_PREKEEP);
 }  }
   

Legend:
Removed from v.1.212  
changed lines
  Added in v.1.213