You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. */
#include <config.h>
#include "do-ifP.h"
-#include <assert.h>
+#include "error.h"
#include <stdlib.h>
#include "alloc.h"
#include "command.h"
#include "error.h"
-#include "expr.h"
+#include "expressions/public.h"
#include "lexer.h"
#include "str.h"
#include "var.h"
#include "debug-print.h"
-#if DEBUGGING
-#include <stdio.h>
-#endif
-
/* *INDENT-OFF* */
/* Description of DO IF transformations:
struct do_if_trns *t;
struct expression *e;
- e = expr_parse (PXP_BOOLEAN);
+ e = expr_parse (default_dict, EXPR_BOOLEAN);
if (!e)
return NULL;
if (token != '.')
int case_num UNUSED)
{
struct do_if_trns *t = (struct do_if_trns *) trns;
- union value bool;
+ double boolean;
- expr_evaluate (t->cond, c, case_num, &bool);
- if (bool.f == 1.0)
+ boolean = expr_evaluate_num (t->cond, c, case_num);
+ if (boolean == 1.0)
{
debug_printf ((_("DO IF %d: true\n"), t->h.index));
return -1;
}
- else if (bool.f == 0.0)
+ else if (boolean == 0.0)
{
debug_printf ((_("DO IF %d: false\n"), t->h.index));
return t->false_jump;