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

Reply via email to