Hello Steph,

  how about having this as an option inside the SPL classes that gets
turned on by Phar automatically? Inside SPL we could have it as a user
set-only flag.

marcus

Wednesday, June 18, 2008, 10:28:40 PM, you wrote:

> Index: ext/spl/spl_directory.c
> ===================================================================
> RCS file: /repository/php-src/ext/spl/spl_directory.c,v
> retrieving revision 1.45.2.27.2.23.2.22
> diff -u -r1.45.2.27.2.23.2.22 spl_directory.c
> --- ext/spl/spl_directory.c     18 Jun 2008 10:05:29 -0000      
> 1.45.2.27.2.23.2.22
> +++ ext/spl/spl_directory.c     18 Jun 2008 17:16:39 -0000
> @@ -185,6 +185,9 @@
>                         intern->file_name_len =
> spprintf(&intern->file_name, 0, "%s%c%s",
>                                                         
> spl_filesystem_object_get_path(intern, NULL TSRMLS_CC),
>                                                          DEFAULT_SLASH, 
> intern->u.dir.entry.d_name);
> +#ifdef PHP_WIN32
> +               spl_unixify_path_separators(intern->file_name, 
> intern->file_name_len);
> +#endif
>                         break;
>                 }
>         }
> @@ -1196,6 +1199,9 @@
>                         subdir->u.dir.sub_path_len = 
> strlen(intern->u.dir.entry.d_name);
>                         subdir->u.dir.sub_path =
> estrndup(intern->u.dir.entry.d_name, subdir->u.dir.sub_path_len);
>                 }
> +#ifdef PHP_WIN32
> +               spl_unixify_path_separators(intern->u.dir.sub_path, 
> intern->u.dir.sub_path_len);
> +#endif
>                 subdir->info_class = intern->info_class;
>                 subdir->file_class = intern->file_class;
>                 subdir->oth = intern->oth;
> @@ -1227,6 +1233,9 @@
>  
>         if (intern->u.dir.sub_path) {
>                 len = spprintf(&sub_name, 0, "%s%c%s",
> intern->u.dir.sub_path, DEFAULT_SLASH, intern->u.dir.entry.d_name);
> +#ifdef PHP_WIN32
> +               spl_unixify_path_separators(sub_name, len);
> +#endif
>                 RETURN_STRINGL(sub_name, len, 0);
>         } else {
>                 RETURN_STRING(intern->u.dir.entry.d_name, 1);
> Index: ext/spl/spl_directory.h
> ===================================================================
> RCS file: /repository/php-src/ext/spl/spl_directory.h,v
> retrieving revision 1.12.2.5.2.4.2.10
> diff -u -r1.12.2.5.2.4.2.10 spl_directory.h
> --- ext/spl/spl_directory.h     20 May 2008 21:46:50 -0000      
> 1.12.2.5.2.4.2.10
> +++ ext/spl/spl_directory.h     18 Jun 2008 17:10:18 -0000
> @@ -112,6 +112,20 @@
>         return (spl_filesystem_object*)((char*)it -
> XtOffsetOf(spl_filesystem_object, it));
>  }
>  
> +#ifdef PHP_WIN32
> +static inline void spl_unixify_path_separators(char *path, int path_len)
> +{
> +       char *s;
> +
> +       /* unixify win paths */
> +       for (s = path; s - path < path_len; ++s) {
> +               if (*s == '\\') {
> +                       *s = '/';
> +               }
> +       }
> +}
> +#endif
> +
>  #define SPL_FILE_OBJECT_DROP_NEW_LINE      0x00000001 /* drop new lines */
>  #define SPL_FILE_OBJECT_READ_AHEAD         0x00000002 /* read on rewind/next 
> */
>  #define SPL_FILE_OBJECT_SKIP_EMPTY         0x00000006 /* skip empty lines */




Best regards,
 Marcus


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to