]> granicus.if.org Git - php/commitdiff
fix windows pathname issues
authorGreg Beaver <cellog@php.net>
Mon, 11 Feb 2008 07:33:20 +0000 (07:33 +0000)
committerGreg Beaver <cellog@php.net>
Mon, 11 Feb 2008 07:33:20 +0000 (07:33 +0000)
ext/phar/phar.c
ext/phar/phar_object.c

index 0e639653966bae86122dfe5e55fca793c5d5f839..d2fc3d6d4e26f7bf918d908fa635f6abb1ec9045 100644 (file)
@@ -1039,10 +1039,10 @@ int phar_create_or_parse_filename(char *fname, int fname_len, char *alias, int a
        mydata = ecalloc(sizeof(phar_archive_data), 1);
 
        mydata->fname = expand_filepath(fname, NULL TSRMLS_CC);
+       fname_len = strlen(mydata->fname);
 #ifdef PHP_WIN32
-       phar_unixify_path_separators(fname, fname_len);
+       phar_unixify_path_separators(mydata->fname, fname_len);
 #endif
-       fname_len = strlen(mydata->fname);
        
        if (pphar) {
                *pphar = mydata;
index 8d635601d77b9bca032a7b2c2f8e57e049976b9e..2493ee154aad176175b8fcbaa9f03e74c6937a56 100755 (executable)
@@ -1065,8 +1065,18 @@ PHP_METHOD(Phar, __construct)
                /* use arch for fname instead of fname */
                /* this allows support for RecursiveDirectoryIterator of subdirectories */
                save_fname = fname;
+#ifdef PHP_WIN32
+               phar_unixify_path_separators(arch, arch_len);
+#endif
                fname = arch;
                fname_len = arch_len;
+#ifdef PHP_WIN32
+       } else {
+               arch = estrndup(fname, fname_len);
+               save_fname = fname;
+               fname = arch;
+               phar_unixify_path_separators(arch, arch_len);
+#endif
        }
        if (phar_open_or_create_filename(fname, fname_len, alias, alias_len, REPORT_ERRORS, &phar_data, &error TSRMLS_CC) == FAILURE) {
                if (fname == arch) {