work
[pspp] / src / data / transformations.c
index f1cfaf47c9688c5d51cd273d7d623b34292d3449..fdb2cb84bd7f854bc3c16a8d32c3968e0ceceace 100644 (file)
@@ -21,6 +21,7 @@
 #include <assert.h>
 #include <stdlib.h>
 
+#include "libpspp/array.h"
 #include "libpspp/str.h"
 
 #include "gl/xalloc.h"
@@ -53,6 +54,18 @@ trns_chain_clear (struct trns_chain *chain)
   return ok;
 }
 
+void
+trns_chain_prepend (struct trns_chain *chain, const struct transformation *t)
+{
+  if (chain->n >= chain->allocated)
+    chain->xforms = x2nrealloc (chain->xforms, &chain->allocated,
+                                sizeof *chain->xforms);
+
+  insert_element (chain->xforms, 1, sizeof *chain->xforms, 0);
+  chain->xforms[0] = *t;
+  chain->n++;
+}
+
 void
 trns_chain_append (struct trns_chain *chain, const struct transformation *t)
 {