helly Sun May 14 18:35:41 2006 UTC Added files: /php-src/ext/standard/tests/file stream_rfc2397_004.phpt stream_rfc2397_005.phpt
Modified files: /php-src/main/streams streams.c Log: - Add strict compliant RFC2397 support (no //) http://cvs.php.net/viewcvs.cgi/php-src/main/streams/streams.c?r1=1.123&r2=1.124&diff_format=u Index: php-src/main/streams/streams.c diff -u php-src/main/streams/streams.c:1.123 php-src/main/streams/streams.c:1.124 --- php-src/main/streams/streams.c:1.123 Sat Apr 22 23:49:39 2006 +++ php-src/main/streams/streams.c Sun May 14 18:35:40 2006 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streams.c,v 1.123 2006/04/22 23:49:39 tony2001 Exp $ */ +/* $Id: streams.c,v 1.124 2006/05/14 18:35:40 helly Exp $ */ #define _GNU_SOURCE #include "php.h" @@ -1982,9 +1982,9 @@ n++; } - if ((*p == ':') && (n > 1) && !strncmp("://", p, 3)) { + if ((*p == ':') && (n > 1) && (!strncmp("//", p+1, 2) || !memcmp("data", path, 4))) { protocol = path; - } else if (strncasecmp(path, "zlib:", 5) == 0) { + } else if (n == 5 && strncasecmp(path, "zlib:", 5) == 0) { /* BC with older php scripts and zlib wrapper */ protocol = "compress.zlib"; n = 13; http://cvs.php.net/viewcvs.cgi/php-src/ext/standard/tests/file/stream_rfc2397_004.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/file/stream_rfc2397_004.phpt +++ php-src/ext/standard/tests/file/stream_rfc2397_004.phpt --TEST-- Stream: RFC2397 Mozilla tests --FILE-- <?php $streams = array( 'data://,;test', 'data://text/plain,test', 'data://text/plain;charset=US-ASCII,test', 'data://;charset=UTF-8,Hello', 'data://text/plain;charset=UTF-8,Hello', 'data://,a,b', ); foreach($streams as $stream) { var_dump(@file_get_contents($stream)); } ?> ===DONE=== <?php exit(0); ?> --EXPECTF-- string(5) ";test" string(4) "test" string(4) "test" bool(false) string(5) "Hello" string(3) "a,b" ===DONE=== http://cvs.php.net/viewcvs.cgi/php-src/ext/standard/tests/file/stream_rfc2397_005.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/file/stream_rfc2397_005.phpt +++ php-src/ext/standard/tests/file/stream_rfc2397_005.phpt --TEST-- Stream: RFC2397 without // --FILE-- <?php $streams = array( 'data:,A%20brief%20note', 'data:application/vnd-xxx-query,select_vcount,fcol_from_fieldtable/local', 'data:;base64,Zm9vYmFyIGZvb2Jhcg==', 'data:,;test', 'data:text/plain,test', 'data:text/plain;charset=US-ASCII,test', 'data:;charset=UTF-8,Hello', 'data:text/plain;charset=UTF-8,Hello', 'data:,a,b', ); foreach($streams as $stream) { var_dump(@file_get_contents($stream)); } ?> ===DONE=== <?php exit(0); ?> --EXPECTF-- string(12) "A brief note" string(40) "select_vcount,fcol_from_fieldtable/local" string(13) "foobar foobar" string(5) ";test" string(4) "test" string(4) "test" bool(false) string(5) "Hello" string(3) "a,b" ===DONE=== -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php