X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fcase.c;fp=src%2Fdata%2Fcase.c;h=9d459ac078d4cddc81e22b9132808e2a23965227;hb=9fec5bb8185313eda6234ce052342ffac776908e;hp=bb6f7c0a8e05c735f9b17cd0aab309993e4d7a21;hpb=52c54183e360053b1845e46cb96cd44a0cf96040;p=pspp diff --git a/src/data/case.c b/src/data/case.c index bb6f7c0a8e..9d459ac078 100644 --- a/src/data/case.c +++ b/src/data/case.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2004, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 2004, 2007, 2009, 2010, 2011, 2013 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 @@ -435,6 +435,28 @@ case_data_all_rw (struct ccase *c) return c->values; } +struct pxd_object * +case_save (const struct ccase *c, struct pxd *pxd) +{ + struct pxd_builder b; + size_t i; + + pxd_builder_init (&b, pxd); + + pxd_builder_put_link (&b, caseproto_save (c->proto, pxd)); + for (i = 0; i < caseproto_get_n_widths (c->proto); i++) + { + int width = caseproto_get_width (c->proto, i); + if (width >= 0) + pxd_builder_put_value (&b, case_data_idx (c, i), width); + } + + return pxd_builder_commit (&b); +} + +struct ccase *case_load (struct pxd_object *, const struct pxd *); + + /* Internal helper function for case_unshare. */ struct ccase * case_unshare__ (struct ccase *old)