[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pspp-cvs] pspp/src/data ChangeLog casegrouper.c casereade...
From: |
Ben Pfaff |
Subject: |
[Pspp-cvs] pspp/src/data ChangeLog casegrouper.c casereade... |
Date: |
Sat, 08 Dec 2007 06:09:03 +0000 |
CVSROOT: /cvsroot/pspp
Module name: pspp
Changes by: Ben Pfaff <blp> 07/12/08 06:09:03
Modified files:
src/data : ChangeLog casegrouper.c casereader.c
casereader.h
Log message:
Patch #6302.
* casegrouper.c (casegrouper_get_next_group): Cause a casegrouper
made from an empty casereader produce a casegrouper with no
groups, instead of one with one group that has no cases.
* casereader.c (casereader_is_empty): New function.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/ChangeLog?cvsroot=pspp&r1=1.174&r2=1.175
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/casegrouper.c?cvsroot=pspp&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/casereader.c?cvsroot=pspp&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/casereader.h?cvsroot=pspp&r1=1.5&r2=1.6
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/ChangeLog,v
retrieving revision 1.174
retrieving revision 1.175
diff -u -b -r1.174 -r1.175
--- ChangeLog 7 Dec 2007 05:22:06 -0000 1.174
+++ ChangeLog 8 Dec 2007 06:09:03 -0000 1.175
@@ -1,3 +1,13 @@
+2007-12-07 Ben Pfaff <address@hidden>
+
+ Patch #6302.
+
+ * casegrouper.c (casegrouper_get_next_group): Cause a casegrouper
+ made from an empty casereader produce a casegrouper with no
+ groups, instead of one with one group that has no cases.
+
+ * casereader.c (casereader_is_empty): New function.
+
2007-12-06 Ben Pfaff <address@hidden>
Patch #6303.
Index: casegrouper.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/casegrouper.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- casegrouper.c 7 Jul 2007 06:14:07 -0000 1.6
+++ casegrouper.c 8 Dec 2007 06:09:03 -0000 1.7
@@ -110,12 +110,21 @@
{
if (grouper->reader != NULL)
{
+ if (!casereader_is_empty (grouper->reader))
+ {
*reader = grouper->reader;
grouper->reader = NULL;
return true;
}
else
{
+ casereader_destroy (grouper->reader);
+ grouper->reader = NULL;
+ return false;
+ }
+ }
+ else
+ {
*reader = NULL;
return false;
}
Index: casereader.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/casereader.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- casereader.c 2 Oct 2007 04:13:07 -0000 1.8
+++ casereader.c 8 Dec 2007 06:09:03 -0000 1.9
@@ -183,6 +183,24 @@
return false;
}
+/* Returns true if no cases remain to be read from READER, or if
+ an error has occurred on READER. (A return value of false
+ does *not* mean that the next call to casereader_peek or
+ casereader_read will return true, because an error can occur
+ in the meantime.) */
+bool
+casereader_is_empty (struct casereader *reader)
+{
+ struct ccase c;
+ if (reader->case_cnt == 0 || !casereader_peek (reader, 0, &c))
+ return true;
+ else
+ {
+ case_destroy (&c);
+ return false;
+ }
+}
+
/* Returns true if an I/O error or another hard error has
occurred on READER, a clone of READER, or on some object on
which READER's data has a dependency, false otherwise. */
Index: casereader.h
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/casereader.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- casereader.h 12 Sep 2007 13:43:50 -0000 1.5
+++ casereader.h 8 Dec 2007 06:09:03 -0000 1.6
@@ -70,6 +70,7 @@
bool casereader_peek (struct casereader *, casenumber, struct ccase *)
WARN_UNUSED_RESULT;
+bool casereader_is_empty (struct casereader *);
bool casereader_error (const struct casereader *);
void casereader_force_error (struct casereader *);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pspp-cvs] pspp/src/data ChangeLog casegrouper.c casereade...,
Ben Pfaff <=