Unlimited the number of variables that the GUI can cope with.
[pspp-builds.git] / src / math / sort.c
index 8ce955384b674eb4599f98a2b072e83eaa76c64b..01e955334c9480cccc47f385519367d490e41d5e 100644 (file)
@@ -30,6 +30,7 @@
 #include <data/case-source.h>
 #include <data/case.h>
 #include <data/casefile.h>
+#include <data/procedure.h>
 #include <data/settings.h>
 #include <data/variable.h>
 #include <data/storage-stream.h>
@@ -40,7 +41,6 @@
 #include <libpspp/message.h>
 #include <libpspp/misc.h>
 #include <libpspp/str.h>
-#include <procedure.h>
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
@@ -62,8 +62,6 @@ static void
 prepare_to_sort_active_file (void) 
 {
   proc_cancel_temporary_transformations (); 
-  expr_free (process_if_expr);
-  process_if_expr = NULL;
 }
 
 /* Sorts the active file in-place according to CRITERIA.
@@ -114,8 +112,11 @@ sort_active_file_to_casefile (const struct sort_criteria *criteria)
 
   cb_data.criteria = criteria;
   cb_data.output = NULL;
-  multipass_procedure (sort_to_casefile_callback, &cb_data);
-
+  if (!multipass_procedure (sort_to_casefile_callback, &cb_data)) 
+    {
+      casefile_destroy (cb_data.output);
+      return NULL;
+    }
   return cb_data.output;
 }