Re: Streams are here!

From: Date: Sat, 16 Mar 2002 02:29:53 +0000
Subject: Re: Streams are here!
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-81315@lists.php.net to get a copy of this message
To have image.c work i had to correct the php_stream_seek and php_stream_getc calls. Seek caals had wrong parameter arragement - but nowhere else in code... getc see below... I changed both functions later. in php_stream_getc i return buf & 0xFF because otherwise i get 0xFFFFFFxx in return. in php_stream_seek i added code to make it much faster.... and i couldn't compile php_stdiop_read see diff marcus diff -u -w -r1.11 streams.c
--- main/streams.c      16 Mar 2002 00:05:47 -0000      1.11
+++ main/streams.c      16 Mar 2002 02:28:55 -0000
@@ -132,7 +132,7 @@
        char buf;
        if (php_stream_read(stream, &buf, 1) > 0) {
-               return buf;
+               return buf & 0xFF;
        }
        return EOF;
} @@ -204,17 +204,19 @@ PHPAPI int php_stream_seek(php_stream *stream, off_t offset, int whence) {
+       static char tmp[1024];
+
        if (stream->ops->seek) {
                return stream->ops->seek(stream, offset, whence);
        }
        /* emulate forward moving seeks with reads */
        if (whence == SEEK_CUR && offset > 0) {
-               while(offset-- > 0) {
-                       if (php_stream_getc(stream) == EOF) {
-                               return -1;
-                       }
+               while (offset>=sizeof(tmp)) {
+                       php_stream_read(stream,tmp,sizeof(tmp));
+                       offset -= sizeof(tmp);
                }
+               if (offset) php_stream_read(stream,tmp,offset);
                return 0;
        }
@@ -447,7 +449,7 @@ static size_t php_stdiop_read(php_stream *stream, char *buf, size_t count) {
-       php_stdio_stream_data * ata = (php_stdio_stream_data*)stream->abstract;
+       php_stdio_stream_data * data = (php_stdio_stream_data*)stream->abstract;
        if (buf == NULL && count == 0)  {
                /* check for EOF condition */
At 22:12 15.03.2002, Wez Furlong wrote:
Well, PHP finally supports fopen("https://...") :-) Please please please test the following things in particular as I can't compile them or verify them here: hyperwave: hw_new_document_from_file gd: functions that create images from files. In particular, try creating from "wrapped" files over http, ftp etc. pfsockopen() copy() - particularly with "wrapped" source/dest gzopen (and friends) gzfile If you have a system where HAVE_FLUSHIO is important, please let me know if plain files work correctly when switching between read and write. If you have things in Pear/PECL or a third party extension that used the old FP_XXX or php_file_le_fopen(), please contact me and I can help you update your code for streams (it's easy). I'll check back in a couple of hours to see if anyone has found show stoppers; otherwise I'll be signing off till the morning (it is Friday after all!) --Wez. -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php


« previous php.dev (#81315) next »