]> git.cameronkatri.com Git - mandoc.git/blobdiff - eqn.c
Bugfix: When the invocation of a user-defined macro follows a roff
[mandoc.git] / eqn.c
diff --git a/eqn.c b/eqn.c
index e36df60a6366ce13357f0759d92211c5d4a945d9..a64031b29b9c8e158eee91e685b711053cd2e170 100644 (file)
--- a/eqn.c
+++ b/eqn.c
@@ -1,4 +1,4 @@
-/*     $Id: eqn.c,v 1.54 2014/10/16 01:11:20 schwarze Exp $ */
+/*     $Id: eqn.c,v 1.56 2014/10/25 15:06:30 schwarze Exp $ */
 /*
  * Copyright (c) 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -36,8 +36,6 @@
 #define        EQN_NEST_MAX     128 /* maximum nesting of defines */
 #define        STRNEQ(p1, sz1, p2, sz2) \
        ((sz1) == (sz2) && 0 == strncmp((p1), (p2), (sz1)))
-#define        EQNSTREQ(x, p, sz) \
-       STRNEQ((x)->name, (x)->sz, (p), (sz))
 
 enum   eqn_tok {
        EQN_TOK_DYAD = 0,
@@ -315,24 +313,12 @@ eqn_read(struct eqn_node **epp, int ln,
 }
 
 struct eqn_node *
-eqn_alloc(const char *name, int pos, int line, struct mparse *parse)
+eqn_alloc(int pos, int line, struct mparse *parse)
 {
        struct eqn_node *p;
-       size_t           sz;
-       const char      *end;
 
        p = mandoc_calloc(1, sizeof(struct eqn_node));
 
-       if (name && '\0' != *name) {
-               sz = strlen(name);
-               assert(sz);
-               do {
-                       sz--;
-                       end = name + (int)sz;
-               } while (' ' == *end || '\t' == *end);
-               p->eqn.name = mandoc_strndup(name, sz + 1);
-       }
-
        p->parse = parse;
        p->eqn.ln = line;
        p->eqn.pos = pos;
@@ -698,7 +684,9 @@ eqn_parse(struct eqn_node *ep, struct eqn_box *parent)
        char             sym[64];
        const char      *start;
 
-       assert(NULL != parent);
+       assert(parent != NULL);
+       if (ep->data == NULL)
+               return(-1);
 
 next_tok:
        tok = eqn_tok_parse(ep, &p);
@@ -1108,7 +1096,6 @@ eqn_free(struct eqn_node *p)
                free(p->defs[i].val);
        }
 
-       free(p->eqn.name);
        free(p->data);
        free(p->defs);
        free(p);