summaryrefslogtreecommitdiffstats
path: root/eqn.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-06-21 18:38:26 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-06-21 18:38:26 +0000
commitb7aded9d3d9c8e14d502f76fdce6a33095650b2e (patch)
treebd0b6415fff584816a9f1fe2fac83d2f55e625d7 /eqn.c
parentfbe45030e750842f7d9885196fcb2cedd211455b (diff)
downloadmandoc-b7aded9d3d9c8e14d502f76fdce6a33095650b2e.tar.gz
quoted words are not parsed for defined keys
Diffstat (limited to 'eqn.c')
-rw-r--r--eqn.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/eqn.c b/eqn.c
index ed74f5c9..e598ebcd 100644
--- a/eqn.c
+++ b/eqn.c
@@ -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.
*/