=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/eqn.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- src/usr.bin/mandoc/eqn.c 2017/06/21 18:03:50 1.27 +++ src/usr.bin/mandoc/eqn.c 2017/06/21 18:37:38 1.28 @@ -1,4 +1,4 @@ -/* $OpenBSD: eqn.c,v 1.27 2017/06/21 18:03:50 schwarze Exp $ */ +/* $OpenBSD: eqn.c,v 1.28 2017/06/21 18:37:38 schwarze Exp $ */ /* * Copyright (c) 2011, 2014 Kristaps Dzonsons * Copyright (c) 2014, 2015, 2017 Ingo Schwarze @@ -521,6 +521,14 @@ 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); @@ -711,7 +719,7 @@ 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; @@ -1095,17 +1103,8 @@ } 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. */