X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fscratch-reader.c;h=cb94e245abf6c985fc7fed7c1bd3a6d9312a8f16;hb=93d4e1865e8e3e2c62bddad822869eedf2e457e0;hp=e329d1c8184b04e2420712b92ac7c6330b2420dd;hpb=a19b858e0ac3c69e4a28c0ca6d8674427268a863;p=pspp diff --git a/src/data/scratch-reader.c b/src/data/scratch-reader.c index e329d1c818..cb94e245ab 100644 --- a/src/data/scratch-reader.c +++ b/src/data/scratch-reader.c @@ -18,13 +18,18 @@ 02110-1301, USA. */ #include + #include "scratch-reader.h" + #include + #include "casefile.h" #include "dictionary.h" -#include #include "file-handle-def.h" #include "scratch-handle.h" +#include +#include + #include "xalloc.h" #include "gettext.h" @@ -70,12 +75,22 @@ scratch_reader_open (struct file_handle *fh, struct dictionary **dict) return reader; } -/* Reads a case from READER into C. +/* Reads a case from READER and copies it into C. Returns true if successful, false on error or at end of file. */ bool scratch_reader_read_case (struct scratch_reader *reader, struct ccase *c) { - return casereader_read (reader->casereader, c); + struct ccase tmp; + if (casereader_read (reader->casereader, &tmp)) + { + case_copy (c, 0, &tmp, 0, + casefile_get_value_cnt ( + casereader_get_casefile (reader->casereader))); + case_destroy (&tmp); + return true; + } + else + return false; } /* Returns true if an I/O error occurred on READER, false otherwise. */