diff options
author | Greg Beaver <cellog@php.net> | 2007-12-29 02:01:12 +0000 |
---|---|---|
committer | Greg Beaver <cellog@php.net> | 2007-12-29 02:01:12 +0000 |
commit | 3dcee1c8c7bdcc099dd458a1f841169b03147e0e (patch) | |
tree | 8b3311775587b243dbc95f47cce97eea9ec4cd40 | |
parent | 06a98d96c748b6e5657b336a9d8c8057f473a7c0 (diff) | |
download | php-git-3dcee1c8c7bdcc099dd458a1f841169b03147e0e.tar.gz |
fix index/custom 404 page
-rwxr-xr-x | ext/phar/phar_object.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index 3d5b45d53b..7357b9b522 100755 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -103,7 +103,11 @@ static int phar_file_action(phar_entry_data *phar, char *mime_type, int code, ch switch (code) { case PHAR_MIME_PHPS: /* highlight source */ - spprintf(&name, 4096, "phar://%s%s", arch, entry); + if (entry[0] == '/') { + name_len = spprintf(&name, 4096, "phar://%s%s", arch, entry); + } else { + name_len = spprintf(&name, 4096, "phar://%s/%s", arch, entry); + } php_get_highlight_struct(&syntax_highlighter_ini); if (highlight_file(name, &syntax_highlighter_ini TSRMLS_CC) == FAILURE) { @@ -158,7 +162,11 @@ static int phar_file_action(phar_entry_data *phar, char *mime_type, int code, ch return PHAR_MIME_OTHER; case PHAR_MIME_PHP: phar_entry_delref(phar TSRMLS_CC); - name_len = spprintf(&name, 4096, "phar://%s%s", arch, entry); + if (entry[0] == '/') { + name_len = spprintf(&name, 4096, "phar://%s%s", arch, entry); + } else { + name_len = spprintf(&name, 4096, "phar://%s/%s", arch, entry); + } ret = php_stream_open_for_zend_ex(name, &file_handle, ENFORCE_SAFE_MODE|USE_PATH|STREAM_OPEN_FOR_INCLUDE TSRMLS_CC); |