From: Greg Beaver Date: Sat, 19 Apr 2008 17:57:24 +0000 (+0000) Subject: fix 3 failing tests out of 108 on windows (whoop-de-doo) X-Git-Tag: RELEASE_2_0_0b1~318 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9035dc059ac14650d2e5258faa5a24620668c101;p=php fix 3 failing tests out of 108 on windows (whoop-de-doo) --- diff --git a/ext/phar/phar.c b/ext/phar/phar.c index a742caee39..263436a6f1 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -1775,7 +1775,7 @@ char *phar_fix_filepath(char *path, int *new_len, int use_cwd TSRMLS_DC) /* {{{ int phar_split_fname(char *filename, int filename_len, char **arch, int *arch_len, char **entry, int *entry_len, int executable, int for_create TSRMLS_DC) /* {{{ */ { const char *ext_str; - int ext_len; + int ext_len, free_filename = 0; if (!strncasecmp(filename, "phar://", 7)) { filename += 7; @@ -1783,12 +1783,20 @@ int phar_split_fname(char *filename, int filename_len, char **arch, int *arch_le } ext_len = 0; +#ifdef PHP_WIN32 + free_filename = 1; + filename = estrndup(filename, filename_len); + phar_unixify_path_separators(filename, filename_len); +#endif if (phar_detect_phar_fname_ext(filename, 0, &ext_str, &ext_len, executable, for_create, 0 TSRMLS_CC) == FAILURE) { if (ext_len != -1) { if (!ext_str) { /* no / detected, restore arch for error message */ *arch = filename; } + if (free_filename) { + efree(filename); + } return FAILURE; } ext_len = 0; @@ -1797,9 +1805,6 @@ int phar_split_fname(char *filename, int filename_len, char **arch, int *arch_le *arch_len = ext_str - filename + ext_len; *arch = estrndup(filename, *arch_len); -#ifdef PHP_WIN32 - phar_unixify_path_separators(*arch, *arch_len); -#endif if (ext_str[ext_len]) { *entry_len = filename_len - *arch_len; *entry = estrndup(ext_str+ext_len, *entry_len); @@ -1811,6 +1816,9 @@ int phar_split_fname(char *filename, int filename_len, char **arch, int *arch_le *entry_len = 1; *entry = estrndup("/", 1); } + if (free_filename) { + efree(filename); + } return SUCCESS; } /* }}} */