=================================================================== RCS file: /cvs/mandoc/eqn.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -p -r1.37 -r1.38 --- mandoc/eqn.c 2011/07/23 18:44:42 1.37 +++ mandoc/eqn.c 2011/07/25 15:37:00 1.38 @@ -1,4 +1,4 @@ -/* $Id: eqn.c,v 1.37 2011/07/23 18:44:42 kristaps Exp $ */ +/* $Id: eqn.c,v 1.38 2011/07/25 15:37:00 kristaps Exp $ */ /* * Copyright (c) 2011 Kristaps Dzonsons * @@ -294,8 +294,7 @@ eqn_read(struct eqn_node **epp, int ln, */ if (0 == strncmp(p, ".EN", 3)) { - er = eqn_end(ep); - *epp = NULL; + er = eqn_end(epp); p += 3; while (' ' == *p || '\t' == *p) p++; @@ -333,7 +332,7 @@ eqn_alloc(const char *name, int pos, int line, struct p = mandoc_calloc(1, sizeof(struct eqn_node)); - if ('\0' != *name) { + if (name && '\0' != *name) { sz = strlen(name); assert(sz); do { @@ -352,10 +351,14 @@ eqn_alloc(const char *name, int pos, int line, struct } enum rofferr -eqn_end(struct eqn_node *ep) +eqn_end(struct eqn_node **epp) { + struct eqn_node *ep; struct eqn_box *root; enum eqn_rest c; + + ep = *epp; + *epp = NULL; ep->eqn.root = mandoc_calloc(1, sizeof(struct eqn_box));