# HG changeset patch
# User David A. Holland
# Date 1370895633 14400
# Node ID b1d0f10e8d36a1ad30f498292239d028a15a03c6
# Parent  dc63e70e425d91df3aa0905c81ca9fd2cbcd3f01
handle nested ifs correctly

diff -r dc63e70e425d -r b1d0f10e8d36 directive.c
--- a/directive.c	Mon Jun 10 16:05:42 2013 -0400
+++ b/directive.c	Mon Jun 10 16:20:33 2013 -0400
@@ -138,7 +138,14 @@
 void
 ifstate_push(struct place *p, bool startstate)
 {
-	ifstate = ifstate_create(ifstate, p, startstate);
+	struct ifstate *newstate;
+
+	newstate = ifstate_create(ifstate, p, startstate);
+	if (!ifstate->curtrue) {
+		newstate->curtrue = false;
+		newstate->evertrue = true;
+	}
+	ifstate = newstate;
 }
 
 static