[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.29 and 1.30

version 1.29, 2017/06/21 20:47:46 version 1.30, 2017/06/22 00:30:06
Line 82 
Line 82 
         EQN_TOK_ABOVE,          EQN_TOK_ABOVE,
         EQN_TOK__MAX,          EQN_TOK__MAX,
         EQN_TOK_FUNC,          EQN_TOK_FUNC,
           EQN_TOK_QUOTED,
           EQN_TOK_SYM,
         EQN_TOK_EOF          EQN_TOK_EOF
 };  };
   
Line 515 
Line 517 
         if (quoted) {          if (quoted) {
                 if (p != NULL)                  if (p != NULL)
                         *p = mandoc_strndup(start, sz);                          *p = mandoc_strndup(start, sz);
                 return EQN_TOK__MAX;                  return EQN_TOK_QUOTED;
         }          }
   
         for (i = 0; i < EQN_TOK__MAX; i++)          for (i = 0; i < EQN_TOK__MAX; i++)
Line 526 
Line 528 
                 if (STRNEQ(start, sz,                  if (STRNEQ(start, sz,
                     eqnsyms[i].str, strlen(eqnsyms[i].str))) {                      eqnsyms[i].str, strlen(eqnsyms[i].str))) {
                         mandoc_asprintf(p, "\\[%s]", eqnsyms[i].sym);                          mandoc_asprintf(p, "\\[%s]", eqnsyms[i].sym);
                         return EQN_TOK__MAX;                          return EQN_TOK_SYM;
                 }                  }
         }          }
   
Line 1082 
Line 1084 
                  * TODO: make sure we're not in an open subexpression.                   * TODO: make sure we're not in an open subexpression.
                  */                   */
                 return ROFF_EQN;                  return ROFF_EQN;
         case EQN_TOK_FUNC:  
         case EQN_TOK__MAX:          case EQN_TOK__MAX:
           case EQN_TOK_FUNC:
           case EQN_TOK_QUOTED:
           case EQN_TOK_SYM:
                 assert(p != NULL);                  assert(p != NULL);
                 /*                  /*
                  * If we already have something in the stack and we're                   * If we already have something in the stack and we're
Line 1110 
Line 1114 
                 cur->text = p;                  cur->text = p;
                 /*                  /*
                  * If not inside any explicit font context,                   * If not inside any explicit font context,
                  * give every letter its own box.                   * quoted strings become italic, and every letter
                    * of a bare string gets its own italic box.
                  */                   */
                 if (fontp == NULL && *p != '\0') {                  do {
                           if (fontp != NULL || *p == '\0' ||
                               tok == EQN_TOK_SYM)
                                   break;
                           if (tok == EQN_TOK_QUOTED) {
                                   cur->font = EQNFONT_ITALIC;
                                   break;
                           }
                         cp = p;                          cp = p;
                         for (;;) {                          for (;;) {
                                   if (isalpha((unsigned char)*cp))
                                           cur->font = EQNFONT_ITALIC;
                                 cpn = cp + 1;                                  cpn = cp + 1;
                                 if (*cp == '\\')                                  if (*cp == '\\')
                                         mandoc_escape(&cpn, NULL, NULL);                                          mandoc_escape(&cpn, NULL, NULL);
                                 if (*cpn == '\0')                                  if (*cpn == '\0')
                                         break;                                          break;
                                 if (isalpha((unsigned char)*cp) == 0 &&                                  if (cur->font != EQNFONT_ITALIC &&
                                     isalpha((unsigned char)*cpn) == 0) {                                      isalpha((unsigned char)*cpn) == 0) {
                                         cp = cpn;                                          cp = cpn;
                                         continue;                                          continue;
Line 1135 
Line 1149 
                                 cur = nbox;                                  cur = nbox;
                                 cp = nbox->text;                                  cp = nbox->text;
                         }                          }
                 }                  } while (0);
                 /*                  /*
                  * Post-process list status.                   * Post-process list status.
                  */                   */

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30