the following pseudo-code was failing with the current apr:

apr_file_read(...)       // read full so eof is hit
apr_file_seek(..., 0, 0) // rewind
apr_file_eof             // should return 0

apr_file_eof isn't supposed to return true, after the file was seek()ed. Here is the patch (thanks to wrowe for the hint!):

tested on unix, please check that it's the same on other platforms.

Index: srclib/apr/file_io/os2/seek.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/os2/seek.c,v
retrieving revision 1.20
diff -u -r1.20 seek.c
--- srclib/apr/file_io/os2/seek.c       13 Mar 2002 20:39:10 -0000      1.20
+++ srclib/apr/file_io/os2/seek.c       18 Jun 2002 17:40:09 -0000
@@ -91,6 +91,8 @@
         return APR_EBADF;
     }

+    thefile->eof_hit = 0;
+
     if (thefile->buffered) {
         int rc = EINVAL;
         apr_finfo_t finfo;
Index: srclib/apr/file_io/unix/seek.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/unix/seek.c,v
retrieving revision 1.26
diff -u -r1.26 seek.c
--- srclib/apr/file_io/unix/seek.c      13 Mar 2002 20:39:11 -0000      1.26
+++ srclib/apr/file_io/unix/seek.c      18 Jun 2002 17:40:09 -0000
@@ -90,6 +90,7 @@
 {
     apr_off_t rv;

+    thefile->eof_hit = 0;

     if (thefile->buffered) {
         int rc = EINVAL;
Index: srclib/apr/file_io/win32/seek.c
===================================================================
RCS file: /home/cvspublic/apr/file_io/win32/seek.c,v
retrieving revision 1.23
diff -u -r1.23 seek.c
--- srclib/apr/file_io/win32/seek.c     14 Mar 2002 22:22:32 -0000      1.23
+++ srclib/apr/file_io/win32/seek.c     18 Jun 2002 17:40:09 -0000
@@ -96,6 +96,8 @@
     apr_finfo_t finfo;
     apr_status_t rc = APR_SUCCESS;

+    thefile->eof_hit = 0;
+
     if (thefile->buffered) {
         switch (where) {
             case APR_SET:

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com



Reply via email to