pspp-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pspp-cvs] pspp/src/data casereader.c [simpler-proc]


From: Ben Pfaff
Subject: [Pspp-cvs] pspp/src/data casereader.c [simpler-proc]
Date: Mon, 23 Apr 2007 01:52:29 +0000

CVSROOT:        /cvsroot/pspp
Module name:    pspp
Branch:         simpler-proc
Changes by:     Ben Pfaff <blp> 07/04/23 01:52:29

Modified files:
        src/data       : casereader.c 

Log message:
        Drop "eof" member of struct casereader: case_cnt can do double duty.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/data/casereader.c?cvsroot=pspp&only_with_tag=simpler-proc&r1=1.1.2.3&r2=1.1.2.4

Patches:
Index: casereader.c
===================================================================
RCS file: /cvsroot/pspp/pspp/src/data/Attic/casereader.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -b -r1.1.2.3 -r1.1.2.4
--- casereader.c        14 Apr 2007 23:01:29 -0000      1.1.2.3
+++ casereader.c        23 Apr 2007 01:52:29 -0000      1.1.2.4
@@ -39,10 +39,8 @@
 
 struct casereader 
   {
-    bool eof;
     size_t value_cnt;
     casenumber case_cnt;
-    //casenumber next_case_idx;
     const struct casereader_class *class;
     void *aux;
   };
@@ -64,7 +62,6 @@
 {
   struct casereader *reader = xmalloc (sizeof *reader);
   assert (class->destroy != NULL);
-  reader->eof = false;
   reader->value_cnt = value_cnt;
   reader->case_cnt = case_cnt;
   reader->class = class;
@@ -129,15 +126,16 @@
 bool
 casereader_read (struct casereader *reader, struct ccase *c) 
 {
-  // FIXME: adjust case_cnt
-  if (!reader->eof && reader->class->read (reader, reader->aux, c)) 
+  if (reader->case_cnt != 0 && reader->class->read (reader, reader->aux, c)) 
     {
       //assert (case_get_value_cnt (c) == reader->value_cnt);
+      if (reader->case_cnt != CASENUMBER_INVALID)
+        reader->case_cnt--;
       return true; 
     }
   else 
     {
-      reader->eof = true;
+      reader->case_cnt = 0;
       case_nullify (c);
       return false; 
     }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]