projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added casereader_clone function.
[pspp-builds.git]
/
src
/
data
/
casefile.c
diff --git
a/src/data/casefile.c
b/src/data/casefile.c
index 95e0388c4e8733ed74b6a3e89ebd780a0dbbe771..f0e700d530a131b3ec5560916d37a7100df2aba5 100644
(file)
--- a/
src/data/casefile.c
+++ b/
src/data/casefile.c
@@
-157,7
+157,10
@@
casereader_read_xfer (struct casereader *ffr, struct ccase *c)
if ( ! read_case ) return false;
if ( ffr->destructive && casefile_in_core (cf) )
if ( ! read_case ) return false;
if ( ffr->destructive && casefile_in_core (cf) )
+ {
+ case_nullify (c);
case_move (c, read_case);
case_move (c, read_case);
+ }
else
case_clone (c, read_case);
else
case_clone (c, read_case);
@@
-173,6
+176,16
@@
casereader_destroy (struct casereader *r)
r->class->destroy(r);
}
r->class->destroy(r);
}
+/* Creates a copy of R and returns it */
+struct casereader *
+casereader_clone(const struct casereader *r)
+{
+ /* Would we ever want to clone a destructive reader ?? */
+ assert ( ! r->destructive ) ;
+
+ return r->class->clone (r);
+}
+
/* Destroys casefile CF. */
void
casefile_destroy(struct casefile *cf)
/* Destroys casefile CF. */
void
casefile_destroy(struct casefile *cf)