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

Diff for /src/usr.bin/mandoc/eqn.c between version 1.11 and 1.12

version 1.11, 2014/07/06 19:08:56 version 1.12, 2014/10/09 15:21:46
Line 194 
Line 194 
         { "", 0 }, /* EQNPOS_NONE */          { "", 0 }, /* EQNPOS_NONE */
         { "over", 4 }, /* EQNPOS_OVER */          { "over", 4 }, /* EQNPOS_OVER */
         { "sup", 3 }, /* EQNPOS_SUP */          { "sup", 3 }, /* EQNPOS_SUP */
           { NULL, 0 }, /* EQNPOS_SUBSUP */
         { "sub", 3 }, /* EQNPOS_SUB */          { "sub", 3 }, /* EQNPOS_SUB */
         { "to", 2 }, /* EQNPOS_TO */          { "to", 2 }, /* EQNPOS_TO */
         { "from", 4 }, /* EQNPOS_FROM */          { "from", 4 }, /* EQNPOS_FROM */
Line 565 
Line 566 
                 return(EQN_OK);                  return(EQN_OK);
         }          }
   
           /*
            * Positional elements (e.g., over, sub, sup, ...).
            */
         for (i = 0; i < (int)EQNPOS__MAX; i++) {          for (i = 0; i < (int)EQNPOS__MAX; i++) {
                 if ( ! EQNSTREQ(&eqnposs[i], start, sz))                  /* Some elements don't have names (are virtual). */
                   if (NULL == eqnposs[i].name)
                         continue;                          continue;
                   else if ( ! EQNSTREQ(&eqnposs[i], start, sz))
                           continue;
                 if (NULL == last->last) {                  if (NULL == last->last) {
                         EQN_MSG(MANDOCERR_EQNSYNT, ep);                          EQN_MSG(MANDOCERR_EQNSYNT, ep);
                         return(EQN_ERR);                          return(EQN_ERR);
                 }                  }
                 last->last->pos = (enum eqn_post)i;                  /*
                    * If we encounter x sub y sup z, then according to the
                    * eqn manual, we regard this as x subsup y z.
                    */
                   if (EQNPOS_SUP == i &&
                           NULL != last->last->prev &&
                           EQNPOS_SUB == last->last->prev->pos)
                           last->last->prev->pos = EQNPOS_SUBSUP;
                   else
                           last->last->pos = (enum eqn_post)i;
   
                 if (EQN_EOF == (c = eqn_box(ep, last))) {                  if (EQN_EOF == (c = eqn_box(ep, last))) {
                         EQN_MSG(MANDOCERR_EQNEOF, ep);                          EQN_MSG(MANDOCERR_EQNEOF, ep);
                         return(EQN_ERR);                          return(EQN_ERR);
Line 661 
Line 678 
         bp->parent = parent;          bp->parent = parent;
         bp->size = ep->gsize;          bp->size = ep->gsize;
   
         if (NULL == parent->first)          if (NULL != parent->first) {
                 parent->first = bp;  
         else  
                 parent->last->next = bp;                  parent->last->next = bp;
                   bp->prev = parent->last;
           } else
                   parent->first = bp;
   
         parent->last = bp;          parent->last = bp;
         return(bp);          return(bp);

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