X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fscratch-reader.c;h=cb94e245abf6c985fc7fed7c1bd3a6d9312a8f16;hb=8c8b1ba6eadf4cf533b5cce513a21b48ae06c402;hp=2067897e111974c4625c8ed69e73eb63533d0fba;hpb=dcf9b154cbcaa35c3d8459a201b77eec8bcb30bd;p=pspp diff --git a/src/data/scratch-reader.c b/src/data/scratch-reader.c index 2067897e11..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 "message.h" #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. */