summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Beaver <cellog@php.net>2007-12-29 02:01:12 +0000
committerGreg Beaver <cellog@php.net>2007-12-29 02:01:12 +0000
commit3dcee1c8c7bdcc099dd458a1f841169b03147e0e (patch)
tree8b3311775587b243dbc95f47cce97eea9ec4cd40
parent06a98d96c748b6e5657b336a9d8c8057f473a7c0 (diff)
downloadphp-git-3dcee1c8c7bdcc099dd458a1f841169b03147e0e.tar.gz
fix index/custom 404 page
-rwxr-xr-xext/phar/phar_object.c12
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);