projects
/
pspp-builds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
74d822f
)
casereader: New function casereader_advance().
fc11-i386-build45
fc11-x64-build42
lenny-x64-build66
sid-i386-build114
author
Ben Pfaff
<blp@gnu.org>
Sat, 5 Dec 2009 22:49:07 +0000
(14:49 -0800)
committer
Ben Pfaff
<blp@gnu.org>
Sat, 5 Dec 2009 22:49:07 +0000
(14:49 -0800)
src/data/casereader.c
patch
|
blob
|
history
src/data/casereader.h
patch
|
blob
|
history
diff --git
a/src/data/casereader.c
b/src/data/casereader.c
index 0eb3baf5c1ea1af841915c0b01a29a06403fe444..77278851e6c90c324ae455e248fb114ac16d8401 100644
(file)
--- a/
src/data/casereader.c
+++ b/
src/data/casereader.c
@@
-264,13
+264,7
@@
casereader_count_cases__ (struct casereader *reader, casenumber max_cases)
casenumber n_cases;
clone = casereader_clone (reader);
casenumber n_cases;
clone = casereader_clone (reader);
- for (n_cases = 0; n_cases < max_cases; n_cases++)
- {
- struct ccase *c = casereader_read (clone);
- if (c == NULL)
- break;
- case_unref (c);
- }
+ n_cases = casereader_advance (clone, max_cases);
casereader_destroy (clone);
return n_cases;
casereader_destroy (clone);
return n_cases;
@@
-315,6
+309,26
@@
casereader_get_proto (const struct casereader *reader)
return reader->proto;
}
return reader->proto;
}
+/* Skips past N cases in READER, stopping when the last case in
+ READER has been read or on an input error. Returns the number
+ of cases successfully skipped. */
+casenumber
+casereader_advance (struct casereader *reader, casenumber n)
+{
+ casenumber i;
+
+ for (i = 0; i < n; i++)
+ {
+ struct ccase *c = casereader_read (reader);
+ if (c == NULL)
+ break;
+ case_unref (c);
+ }
+
+ return i;
+}
+
+
/* Copies all the cases in READER to WRITER, propagating errors
appropriately. */
void
/* Copies all the cases in READER to WRITER, propagating errors
appropriately. */
void
diff --git
a/src/data/casereader.h
b/src/data/casereader.h
index 107e60693bb6022d9c7ecd55ec6b4b3931d86f30..fb9d50ff68e31308cc8ab8ef6cc70d6f356f01e6 100644
(file)
--- a/
src/data/casereader.h
+++ b/
src/data/casereader.h
@@
-80,6
+80,7
@@
casenumber casereader_count_cases (struct casereader *);
void casereader_truncate (struct casereader *, casenumber);
const struct caseproto *casereader_get_proto (const struct casereader *);
void casereader_truncate (struct casereader *, casenumber);
const struct caseproto *casereader_get_proto (const struct casereader *);
+casenumber casereader_advance (struct casereader *, casenumber);
void casereader_transfer (struct casereader *, struct casewriter *);
\f
struct casereader *
void casereader_transfer (struct casereader *, struct casewriter *);
\f
struct casereader *