Re: REMINDER - stream wrappers in include_path
| From: | Gregory Beaver | Date: | Mon, 24 Mar 2008 13:47:25 +0000 |
| Subject: | Re: REMINDER - stream wrappers in include_path | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-36425@lists.php.net to get a copy of this message | ||
Marcus Boerger wrote:
> Hello Gregory,
>
> Monday, March 24, 2008, 2:28:00 PM, you wrote:
>
>
>> Index: main/fopen_wrappers.c
>> ===================================================================
>> RCS file: /repository/php-src/main/fopen_wrappers.c,v
>> retrieving revision 1.175.2.3.2.13.2.9
>> diff -u -r1.175.2.3.2.13.2.9 fopen_wrappers.c
>> --- main/fopen_wrappers.c 24 Mar 2008 09:30:41 -0000 1.175.2.3.2.13.2.9
>> +++ main/fopen_wrappers.c 24 Mar 2008 13:24:34 -0000
>> @@ -473,7 +473,15 @@
>>
>> ptr = path;
>> while (ptr && *ptr) {
>> - end = strchr(ptr, DEFAULT_DIR_SEPARATOR);
>> + /* Check for stream wrapper */
>> + int is_stream_wrapper = 0;
>> +
>> + for (p = ptr; isalnum((int)*p) || *p == '+' || *p ==
>> '-' || *p == '.'; p++);
>> + if ((*p == ':') && (p - ptr > 1) && (p[1] ==
>> '/') && (p[2] == '/')) {
>>
> However how about:
> if ((p > ptr) && !memcmp(p, "://", 3)) {
this would unfortunately break UNC paths on unix, which start with //.
We have to verify that the stuff between : and : in the previous thing
is a valid stream wrapper, which means it can only be
alphanumeric/+/-/. However, I imagine the memcmp could be applied as if
((*p == ':') && (p - ptr > 1) && !memcmp(p, "://", 3))
Would that really be faster?
> I think prefixinf with STREAMS_ would be good.
OK, updated and attached
Greg