From: Marcus Boerger Date: Sun, 14 May 2006 18:35:40 +0000 (+0000) Subject: - Add strict compliant RFC2397 support (no //) X-Git-Tag: BEFORE_NEW_OUTPUT_API~197 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3856d8da6d6a448930de1f6dadd181014dbdccf1;p=php - Add strict compliant RFC2397 support (no //) --- diff --git a/ext/standard/tests/file/stream_rfc2397_004.phpt b/ext/standard/tests/file/stream_rfc2397_004.phpt new file mode 100755 index 0000000000..ac71564760 --- /dev/null +++ b/ext/standard/tests/file/stream_rfc2397_004.phpt @@ -0,0 +1,30 @@ +--TEST-- +Stream: RFC2397 Mozilla tests +--FILE-- + +===DONE=== + +--EXPECTF-- +string(5) ";test" +string(4) "test" +string(4) "test" +bool(false) +string(5) "Hello" +string(3) "a,b" +===DONE=== \ No newline at end of file diff --git a/ext/standard/tests/file/stream_rfc2397_005.phpt b/ext/standard/tests/file/stream_rfc2397_005.phpt new file mode 100755 index 0000000000..892af432b6 --- /dev/null +++ b/ext/standard/tests/file/stream_rfc2397_005.phpt @@ -0,0 +1,36 @@ +--TEST-- +Stream: RFC2397 without // +--FILE-- + +===DONE=== + +--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=== \ No newline at end of file diff --git a/main/streams/streams.c b/main/streams/streams.c index d5210659ce..e22b0d13bb 100755 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -1982,9 +1982,9 @@ PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, char 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;