diff options
Diffstat (limited to 'eqn.c')
-rw-r--r-- | eqn.c | 21 |
1 files changed, 10 insertions, 11 deletions
@@ -523,6 +523,14 @@ eqn_tok_parse(struct eqn_node *ep, char **p) if (STRNEQ(start, sz, eqn_toks[i], strlen(eqn_toks[i]))) return i; + for (i = 0; i < EQNSYM__MAX; i++) { + if (STRNEQ(start, sz, + eqnsyms[i].str, strlen(eqnsyms[i].str))) { + mandoc_asprintf(p, "\\[%s]", eqnsyms[i].sym); + return EQN_TOK__MAX; + } + } + if (p != NULL) *p = mandoc_strndup(start, sz); @@ -713,7 +721,7 @@ eqn_parse(struct eqn_node *ep, struct eqn_box *parent) struct eqn_box *cur; const char *start; char *p; - size_t i, sz; + size_t sz; enum eqn_tok tok, subtok; enum eqn_post pos; int size; @@ -1097,17 +1105,8 @@ this_tok: } cur = eqn_box_alloc(ep, parent); cur->type = EQN_TEXT; - for (i = 0; i < EQNSYM__MAX; i++) - if (0 == strcmp(eqnsyms[i].str, p)) { - (void)snprintf(sym, sizeof(sym), - "\\[%s]", eqnsyms[i].sym); - cur->text = mandoc_strdup(sym); - free(p); - break; - } + cur->text = p; - if (i == EQNSYM__MAX) - cur->text = p; /* * Post-process list status. */ |