Use gsl_isnan instead of isnan, gsl_isinf instead of isinf, and
[pspp-builds.git] / src / language / data-io / inpt-pgm.c
index 844fe2fe75d04efde0c84741fbbc09477509ac26..e000a0fd3a2b95772aec8a80371379a38b17ed0c 100644 (file)
@@ -19,6 +19,7 @@
 #include <language/data-io/inpt-pgm.h>
 
 #include <float.h>
+#include <gsl/gsl_math.h>
 #include <stdlib.h>
 
 #include <data/case.h>
@@ -296,6 +297,7 @@ cmd_reread (struct lexer *lexer, struct dataset *ds)
       else if (lex_match_id (lexer, "FILE"))
        {
          lex_match (lexer, '=');
+          fh_unref (fh);
           fh = fh_parse (lexer, FH_REF_FILE | FH_REF_INLINE);
          if (fh == NULL)
            {
@@ -316,6 +318,7 @@ cmd_reread (struct lexer *lexer, struct dataset *ds)
   t->column = e;
   add_transformation (ds, reread_trns_proc, reread_trns_free, t);
 
+  fh_unref (fh);
   return CMD_SUCCESS;
 }
 
@@ -330,7 +333,7 @@ reread_trns_proc (void *t_, struct ccase *c, casenumber case_num)
   else
     {
       double column = expr_evaluate_num (t->column, c, case_num);
-      if (!finite (column) || column < 1)
+      if (!gsl_finite (column) || column < 1)
        {
          msg (SE, _("REREAD: Column numbers must be positive finite "
               "numbers.  Column set to 1."));