Add yet another expression test and fix the bugs it found.
[pspp-builds.git] / src / modify-vars.c
index ed28ee4c671d4a0df0c4a185e9ec0dcb4b93930d..5cddfe15a349e3640e0a17e26d5a32de84871148 100644 (file)
 
 #include <config.h>
 #include <stdlib.h>
-#include <assert.h>
+#include "error.h"
 #include "algorithm.h"
 #include "alloc.h"
 #include "bitvector.h"
 #include "command.h"
+#include "dictionary.h"
 #include "error.h"
 #include "hash.h"
 #include "lexer.h"
@@ -83,8 +84,12 @@ cmd_modify_vars (void)
 
   size_t i;
 
-  lex_match_id ("MODIFY");
-  lex_match_id ("VARS");
+  if (temporary != 0)
+    {
+      msg (SE, _("MODIFY VARS may not be used after TEMPORARY.  "
+                 "Temporary transformations will be made permanent."));
+      cancel_temporary (); 
+    }
 
   vm.reorder_vars = NULL;
   vm.reorder_cnt = 0;
@@ -309,7 +314,7 @@ cmd_modify_vars (void)
   if (already_encountered & (1 | 4))
     {
       /* Read the data. */
-      procedure (NULL, NULL, NULL);
+      procedure (NULL, NULL);
     }
 
   if (!rearrange_dict (default_dict, &vm))
@@ -360,7 +365,7 @@ struct var_renaming
    var_renaming structures A and B. */
 static int
 compare_var_renaming_by_new_name (const void *a_, const void *b_,
-                                  void *foo unused
+                                  void *foo UNUSED
 {
   const struct var_renaming *a = a_;
   const struct var_renaming *b = b_;