it works!!
[pspp] / src / data / dataset.c
index aa196f2850d84b5df9bf776302a0db62221bc837..aa68ae9cb6b6c32ac1484b5aeb7cc83da9d705c2 100644 (file)
@@ -347,6 +347,18 @@ dataset_steal_source (struct dataset *ds)
   return reader;
 }
 
+bool
+dataset_delete_vars (struct dataset *ds, struct variable **vars, size_t n)
+{
+  dict_delete_vars (ds->dict, vars, n);
+  ds->source = case_map_create_input_translator (
+    case_map_to_compact_dict (ds->dict, 0), ds->source);
+  dict_compact_values (ds->dict);
+  caseinit_clear (ds->caseinit);
+  caseinit_mark_as_preinited (ds->caseinit, ds->dict);
+  return true;
+}
+
 /* Returns a number unique to DS.  It can be used to distinguish one dataset
    from any other within a given program run, even datasets that do not exist
    at the same time. */
@@ -803,6 +815,12 @@ proc_pop_transformations (struct dataset *ds, struct trns_chain *chain)
   *chain = ds->stack[--ds->n_stack];
 }
 
+bool
+proc_has_transformations (const struct dataset *ds)
+{
+  return ds->permanent_trns_chain.n || ds->temporary_trns_chain.n;
+}
+
 static enum trns_result
 store_case_num (void *var_, struct ccase **cc, casenumber case_num)
 {