diff macro.c @ 192:255db24bc29b

Fix output corruption; see CHANGES entry.
author David A. Holland
date Fri, 12 Jun 2015 21:54:32 -0400
parents c8d4ab9aeff0
children 1d2bad7151f9
line wrap: on
line diff
--- a/macro.c	Fri Jun 12 20:06:55 2015 -0400
+++ b/macro.c	Fri Jun 12 21:54:32 2015 -0400
@@ -892,8 +892,9 @@
 		return;
 	}
 
-	assert(es->curmacro->inuse == false);
-	es->curmacro->inuse = true;
+	m = es->curmacro;
+	assert(m->inuse == false);
+	m->inuse = true;
 
 	newbuf = expand_substitute(p, es);
 	newbuf2 = macroexpand(p, newbuf, strlen(newbuf), false);
@@ -902,7 +903,7 @@
 	doexpand(es, p, newbuf2, strlen(newbuf2));
 	dostrfree(newbuf2);
 
-	es->curmacro->inuse = false;
+	m->inuse = false;
 }
 
 /*
@@ -970,7 +971,6 @@
 		} else if (!m->hasparams) {
 			es->curmacro = m;
 			expand_domacro(es, p);
-			es->curmacro = NULL;
 		} else {
 			es->curmacro = m;
 			es->state = ES_WANTLPAREN;