# 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