* casereader-translator.c (struct casereader_translator): Change
[pspp-builds.git] / src / language / data-io / get.c
index 8a8d7859f5139361753d32db57650416e9e9831c..abfc62472a3b50e11bbf61bfaa5e9ac5c18acf23 100644 (file)
@@ -60,8 +60,7 @@ enum reader_command
     IMPORT_CMD
   };
 
-static void get_translate_case (const struct ccase *, struct ccase *,
-                                void *map_);
+static void get_translate_case (struct ccase *, struct ccase *, void *map_);
 static bool get_destroy_case_map (void *map_);
 
 /* Parses a GET or IMPORT command. */
@@ -121,6 +120,7 @@ parse_read_command (struct lexer *lexer, struct dataset *ds, enum reader_command
       if (!parse_dict_trim (lexer, dict))
         goto error;
     }
+  dict_compact_values (dict);
 
   map = case_map_from_dict (dict);
   if (map != NULL)
@@ -142,11 +142,12 @@ parse_read_command (struct lexer *lexer, struct dataset *ds, enum reader_command
 }
 
 static void
-get_translate_case (const struct ccase *input, struct ccase *output,
+get_translate_case (struct ccase *input, struct ccase *output,
                     void *map_)
 {
   struct case_map *map = map_;
   case_map_execute (map, input, output);
+  case_destroy (input);
 }
 
 static bool