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

Diff for /mandoc/eqn_term.c between version 1.11 and 1.12

version 1.11, 2017/07/06 00:19:54 version 1.12, 2017/07/07 19:06:31
Line 51  static void
Line 51  static void
 eqn_box(struct termp *p, const struct eqn_box *bp)  eqn_box(struct termp *p, const struct eqn_box *bp)
 {  {
         const struct eqn_box *child;          const struct eqn_box *child;
           int delim;
   
           /* Delimiters around this box? */
   
         if ((bp->type == EQN_LIST && bp->expectargs > 1) ||          if ((bp->type == EQN_LIST && bp->expectargs > 1) ||
             (bp->type == EQN_PILE && (bp->prev || bp->next)) ||              (bp->type == EQN_PILE && (bp->prev || bp->next)) ||
             (bp->parent != NULL && bp->parent->pos == EQNPOS_SQRT)) {              (bp->parent != NULL && (bp->parent->pos == EQNPOS_SQRT ||
               /* Diacritic followed by ^ or _. */
               ((bp->top != NULL || bp->bottom != NULL) &&
                bp->parent->type == EQN_SUBEXPR &&
                bp->parent->pos != EQNPOS_OVER && bp->next != NULL) ||
               /* Nested over, sub, sup, from, to. */
               (bp->type == EQN_SUBEXPR && bp->pos != EQNPOS_SQRT &&
                ((bp->parent->type == EQN_LIST && bp->expectargs == 1) ||
                 (bp->parent->type == EQN_SUBEXPR &&
                  bp->pos != EQNPOS_SQRT)))))) {
                 if (bp->parent->type == EQN_SUBEXPR && bp->prev != NULL)                  if (bp->parent->type == EQN_SUBEXPR && bp->prev != NULL)
                         p->flags |= TERMP_NOSPACE;                          p->flags |= TERMP_NOSPACE;
                 term_word(p, bp->left != NULL ? bp->left : "(");                  term_word(p, bp->left != NULL ? bp->left : "(");
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
         }                  delim = 1;
           } else
                   delim = 0;
   
           /* Handle Fonts and text. */
   
         if (bp->font != EQNFONT_NONE)          if (bp->font != EQNFONT_NONE)
                 term_fontpush(p, fontmap[(int)bp->font]);                  term_fontpush(p, fontmap[(int)bp->font]);
   
         if (bp->text != NULL)          if (bp->text != NULL)
                 term_word(p, bp->text);                  term_word(p, bp->text);
   
           /* Special box types. */
   
         if (bp->pos == EQNPOS_SQRT) {          if (bp->pos == EQNPOS_SQRT) {
                 term_word(p, "sqrt");                  term_word(p, "sqrt");
                 if (bp->first != NULL) {                  if (bp->first != NULL) {
Line 111  eqn_box(struct termp *p, const struct eqn_box *bp)
Line 130  eqn_box(struct termp *p, const struct eqn_box *bp)
                 }                  }
         }          }
   
           /* Handle Fonts and diacritics. */
   
         if (bp->font != EQNFONT_NONE)          if (bp->font != EQNFONT_NONE)
                 term_fontpop(p);                  term_fontpop(p);
         if (bp->top != NULL) {          if (bp->top != NULL) {
Line 121  eqn_box(struct termp *p, const struct eqn_box *bp)
Line 142  eqn_box(struct termp *p, const struct eqn_box *bp)
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
                 term_word(p, "_");                  term_word(p, "_");
         }          }
         if ((bp->type == EQN_LIST && bp->expectargs > 1) ||  
             (bp->type == EQN_PILE && (bp->prev || bp->next)) ||          /* Right delimiter after this box? */
             (bp->parent != NULL && bp->parent->pos == EQNPOS_SQRT)) {  
           if (delim) {
                 p->flags |= TERMP_NOSPACE;                  p->flags |= TERMP_NOSPACE;
                 term_word(p, bp->right != NULL ? bp->right : ")");                  term_word(p, bp->right != NULL ? bp->right : ")");
                 if (bp->parent->type == EQN_SUBEXPR && bp->next != NULL)                  if (bp->parent->type == EQN_SUBEXPR && bp->next != NULL)

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

CVSweb