subcase: New functions subcase_concat() and subcase_concat_always().
[pspp] / src / data / subcase.c
index 32056215e4ace37d4fcd9b544c3e48c493d82dec..bac32ddefb21eb0fc2e1fde395c08bfc0575e188 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -201,6 +201,30 @@ subcase_add_proto_always (struct subcase *sc, const struct caseproto *proto)
   invalidate_proto (sc);
 }
 
+void
+subcase_concat (struct subcase *sc, const struct subcase *other)
+{
+  size_t i;
+
+  for (i = 0; i < other->n_fields; i++)
+    {
+      const struct subcase_field *f = &other->fields[i];
+      subcase_add (sc, f->case_index, f->width, f->direction);
+    }
+}
+
+void
+subcase_concat_always (struct subcase *sc, const struct subcase *other)
+{
+  size_t i;
+
+  for (i = 0; i < other->n_fields; i++)
+    {
+      const struct subcase_field *f = &other->fields[i];
+      subcase_add_always (sc, f->case_index, f->width, f->direction);
+    }
+}
+
 /* Obtains a caseproto for a case described by SC.  The caller
    must not modify or unref the returned case prototype. */
 const struct caseproto *