X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fcontrol%2Floop.c;h=40a33c11bbafc451adddb40f9529356ed12c6776;hb=f5d9f9911bd04682a7edfb48521a12202e561e0a;hp=1edbf25c1b7bc9cd405b3f09f45e38e00071ae22;hpb=43b1296aafe7582e7dbe6c2b6a8b478d7d9b0fcf;p=pspp-builds.git diff --git a/src/language/control/loop.c b/src/language/control/loop.c index 1edbf25c..40a33c11 100644 --- a/src/language/control/loop.c +++ b/src/language/control/loop.c @@ -17,6 +17,7 @@ #include #include "control-stack.h" + #include #include #include @@ -26,13 +27,14 @@ #include #include #include -#include #include #include #include #include #include +#include "xalloc.h" + #include "gettext.h" #define _(msgid) gettext (msgid) @@ -179,7 +181,7 @@ close_loop (void *loop_) && loop->index_var == NULL && loop->loop_condition == NULL && loop->end_loop_condition == NULL) - loop->max_pass_count = get_mxloops (); + loop->max_pass_count = settings_get_mxloops (); } /* Parses an IF clause for LOOP or END LOOP and stores the @@ -319,7 +321,8 @@ loop_trns_proc (void *loop_, struct ccase *c, casenumber case_num) case_data_rw (c, loop->index_var)->f = loop->cur; /* Throw out pathological cases. */ - if (!finite (loop->cur) || !finite (loop->by) || !finite (loop->last) + if (!isfinite (loop->cur) || !isfinite (loop->by) + || !isfinite (loop->last) || loop->by == 0.0 || (loop->by > 0.0 && loop->cur > loop->last) || (loop->by < 0.0 && loop->cur < loop->last))