dmitry          Tue Jul 22 07:03:01 2008 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/phar   phar.c phar_internal.h phar_object.c 
    /php-src/ext/phar/tests     frontcontroller11.phpt 
    /php-src/ext/phar/tests/cache_list  frontcontroller11.phpt 
    /php-src/ext/phar/tests/cache_list/files    frontcontroller6.phar 
                                                frontcontroller7.phar 
    /php-src/ext/phar/tests/files       frontcontroller5.phar 
                                        frontcontroller6.phar 
                                        frontcontroller6.phar.inc 
                                        frontcontroller7.phar 
                                        frontcontroller7.phar.inc 
    /php-src/ext/phar/tests/tar frontcontroller11.phar.phpt 
    /php-src/ext/phar/tests/tar/files   frontcontroller6.phar.inc 
                                        frontcontroller6.phar.tar 
                                        frontcontroller7.phar.inc 
                                        frontcontroller7.phar.tar 
    /php-src/ext/phar/tests/zip frontcontroller11.phar.phpt 
    /php-src/ext/phar/tests/zip/files   frontcontroller6.phar.inc 
                                        frontcontroller6.phar.zip 
                                        frontcontroller7.phar.inc 
                                        frontcontroller7.phar.zip 
  Log:
  Improved webPhar speed (frontcontroller11.phar.phpt is disabled, should be 
removed)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar.c?r1=1.370.2.35&r2=1.370.2.36&diff_format=u
Index: php-src/ext/phar/phar.c
diff -u php-src/ext/phar/phar.c:1.370.2.35 php-src/ext/phar/phar.c:1.370.2.36
--- php-src/ext/phar/phar.c:1.370.2.35  Sun Jul 20 14:42:34 2008
+++ php-src/ext/phar/phar.c     Tue Jul 22 07:03:00 2008
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: phar.c,v 1.370.2.35 2008/07/20 14:42:34 dmitry Exp $ */
+/* $Id: phar.c,v 1.370.2.36 2008/07/22 07:03:00 dmitry Exp $ */
 
 #define PHAR_MAIN 1
 #include "phar_internal.h"
@@ -3283,6 +3283,8 @@
 
 PHP_MINIT_FUNCTION(phar) /* {{{ */
 {
+       phar_mime_type mime;
+
        ZEND_INIT_MODULE_GLOBALS(phar, php_phar_init_globals_module, NULL);
        REGISTER_INI_ENTRIES();
 
@@ -3301,6 +3303,55 @@
 
        phar_intercept_functions_init(TSRMLS_C);
 
+       zend_hash_init(&PHAR_G(mime_types), 0, NULL, NULL, 1);
+
+#define PHAR_SET_MIME(mimetype, ret, fileext) \
+               mime.mime = mimetype; \
+               mime.len = sizeof((mimetype))+1; \
+               mime.type = ret; \
+               zend_hash_add(&PHAR_G(mime_types), fileext, sizeof(fileext)-1, 
(void *)&mime, sizeof(phar_mime_type), NULL); \
+
+       PHAR_SET_MIME("text/html", PHAR_MIME_PHPS, "phps")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "c")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "cc")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "cpp")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "c++")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "dtd")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "h")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "log")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "rng")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "txt")
+       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "xsd")
+       PHAR_SET_MIME("", PHAR_MIME_PHP, "php")
+       PHAR_SET_MIME("", PHAR_MIME_PHP, "inc")
+       PHAR_SET_MIME("video/avi", PHAR_MIME_OTHER, "avi")
+       PHAR_SET_MIME("image/bmp", PHAR_MIME_OTHER, "bmp")
+       PHAR_SET_MIME("text/css", PHAR_MIME_OTHER, "css")
+       PHAR_SET_MIME("image/gif", PHAR_MIME_OTHER, "gif")
+       PHAR_SET_MIME("text/html", PHAR_MIME_OTHER, "htm")
+       PHAR_SET_MIME("text/html", PHAR_MIME_OTHER, "html")
+       PHAR_SET_MIME("text/html", PHAR_MIME_OTHER, "htmls")
+       PHAR_SET_MIME("image/x-ico", PHAR_MIME_OTHER, "ico")
+       PHAR_SET_MIME("image/jpeg", PHAR_MIME_OTHER, "jpe")
+       PHAR_SET_MIME("image/jpeg", PHAR_MIME_OTHER, "jpg")
+       PHAR_SET_MIME("image/jpeg", PHAR_MIME_OTHER, "jpeg")
+       PHAR_SET_MIME("application/x-javascript", PHAR_MIME_OTHER, "js")
+       PHAR_SET_MIME("audio/midi", PHAR_MIME_OTHER, "midi")
+       PHAR_SET_MIME("audio/midi", PHAR_MIME_OTHER, "mid")
+       PHAR_SET_MIME("audio/mod", PHAR_MIME_OTHER, "mod")
+       PHAR_SET_MIME("movie/quicktime", PHAR_MIME_OTHER, "mov")
+       PHAR_SET_MIME("audio/mp3", PHAR_MIME_OTHER, "mp3")
+       PHAR_SET_MIME("video/mpeg", PHAR_MIME_OTHER, "mpg")
+       PHAR_SET_MIME("video/mpeg", PHAR_MIME_OTHER, "mpeg")
+       PHAR_SET_MIME("application/pdf", PHAR_MIME_OTHER, "pdf")
+       PHAR_SET_MIME("image/png", PHAR_MIME_OTHER, "png")
+       PHAR_SET_MIME("application/shockwave-flash", PHAR_MIME_OTHER, "swf")
+       PHAR_SET_MIME("image/tiff", PHAR_MIME_OTHER, "tif")
+       PHAR_SET_MIME("image/tiff", PHAR_MIME_OTHER, "tiff")
+       PHAR_SET_MIME("audio/wav", PHAR_MIME_OTHER, "wav")
+       PHAR_SET_MIME("image/xbm", PHAR_MIME_OTHER, "xbm")
+       PHAR_SET_MIME("text/xml", PHAR_MIME_OTHER, "xml")
+
        return php_register_url_stream_wrapper("phar", &php_stream_phar_wrapper 
TSRMLS_CC);
 }
 /* }}} */
@@ -3309,6 +3360,8 @@
 {
        php_unregister_url_stream_wrapper("phar" TSRMLS_CC);
 
+       zend_hash_destroy(&PHAR_G(mime_types));
+
        phar_intercept_functions_shutdown(TSRMLS_C);
 
        if (zend_compile_file == phar_compile_file) {
@@ -3347,16 +3400,13 @@
                        phar_entry_fp *stuff = (phar_entry_fp *) 
ecalloc(zend_hash_num_elements(&cached_phars), sizeof(phar_entry_fp));
 
                        for (zend_hash_internal_pointer_reset(&cached_phars);
-                       zend_hash_has_more_elements(&cached_phars) == SUCCESS;
+                       zend_hash_get_current_data(&cached_phars, (void 
**)&pphar) == SUCCESS;
                        zend_hash_move_forward(&cached_phars)) {
-                               if (zend_hash_get_current_data(&cached_phars, 
(void **)&pphar) == FAILURE) {
-                                       continue;
-                               }
                                stuff[pphar[0]->phar_pos].manifest = 
(phar_entry_fp_info *) ecalloc( zend_hash_num_elements(&(pphar[0]->manifest)), 
sizeof(phar_entry_fp_info));
                        }
                        PHAR_GLOBALS->cached_fp = stuff;
                }
-               zend_hash_init(&(PHAR_GLOBALS->phar_SERVER_mung_list), 5, 
zend_get_hash_value, NULL, 0);
+               PHAR_GLOBALS->phar_SERVER_mung_list = 0;
                PHAR_G(cwd) = NULL;
                PHAR_G(cwd_len) = 0;
                PHAR_G(cwd_init) = 0;
@@ -3377,7 +3427,7 @@
                PHAR_GLOBALS->phar_alias_map.arBuckets = NULL;
                zend_hash_destroy(&(PHAR_GLOBALS->phar_fname_map));
                PHAR_GLOBALS->phar_fname_map.arBuckets = NULL;
-               zend_hash_destroy(&(PHAR_GLOBALS->phar_SERVER_mung_list));
+               PHAR_GLOBALS->phar_SERVER_mung_list = 0;
                if (PHAR_GLOBALS->cached_fp) {
                        for (i = 0; i < zend_hash_num_elements(&cached_phars); 
++i) {
                                if (PHAR_GLOBALS->cached_fp[i].fp) {
@@ -3391,7 +3441,6 @@
                        efree(PHAR_GLOBALS->cached_fp);
                        PHAR_GLOBALS->cached_fp = 0;
                }
-               PHAR_GLOBALS->phar_SERVER_mung_list.arBuckets = NULL;
                PHAR_GLOBALS->request_init = 0;
                if (PHAR_G(cwd)) {
                        efree(PHAR_G(cwd));
@@ -3412,7 +3461,7 @@
        php_info_print_table_header(2, "Phar: PHP Archive support", "enabled");
        php_info_print_table_row(2, "Phar EXT version", PHP_PHAR_VERSION);
        php_info_print_table_row(2, "Phar API version", PHP_PHAR_API_VERSION);
-       php_info_print_table_row(2, "CVS revision", "$Revision: 1.370.2.35 $");
+       php_info_print_table_row(2, "CVS revision", "$Revision: 1.370.2.36 $");
        php_info_print_table_row(2, "Phar-based phar archives", "enabled");
        php_info_print_table_row(2, "Tar-based phar archives", "enabled");
        php_info_print_table_row(2, "ZIP-based phar archives", "enabled");
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_internal.h?r1=1.109.2.21&r2=1.109.2.22&diff_format=u
Index: php-src/ext/phar/phar_internal.h
diff -u php-src/ext/phar/phar_internal.h:1.109.2.21 
php-src/ext/phar/phar_internal.h:1.109.2.22
--- php-src/ext/phar/phar_internal.h:1.109.2.21 Sun Jul 20 14:42:34 2008
+++ php-src/ext/phar/phar_internal.h    Tue Jul 22 07:03:00 2008
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: phar_internal.h,v 1.109.2.21 2008/07/20 14:42:34 dmitry Exp $ */
+/* $Id: phar_internal.h,v 1.109.2.22 2008/07/22 07:03:00 dmitry Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -141,6 +141,11 @@
 #define TAR_DIR     '5'
 #define TAR_NEW     '8'
 
+#define PHAR_MUNG_PHP_SELF                     (1<<0)
+#define PHAR_MUNG_REQUEST_URI          (1<<1)
+#define PHAR_MUNG_SCRIPT_NAME          (1<<2)
+#define PHAR_MUNG_SCRIPT_FILENAME      (1<<3)
+
 typedef struct _phar_entry_fp phar_entry_fp;
 typedef struct _phar_archive_data phar_archive_data;
 
@@ -149,7 +154,7 @@
        /* for cached phars, this is a per-process store of fp/ufp */
        phar_entry_fp *cached_fp;
        HashTable   phar_alias_map;
-       HashTable   phar_SERVER_mung_list;
+       int         phar_SERVER_mung_list;
        int         readonly;
        char*       cache_list;
        int         manifest_cached;
@@ -197,6 +202,7 @@
        char*       last_alias;
        int         last_alias_len;
        phar_archive_data* last_phar;
+       HashTable mime_types;
 ZEND_END_MODULE_GLOBALS(phar)
 
 ZEND_EXTERN_MODULE_GLOBALS(phar)
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_object.c?r1=1.266.2.35&r2=1.266.2.36&diff_format=u
Index: php-src/ext/phar/phar_object.c
diff -u php-src/ext/phar/phar_object.c:1.266.2.35 
php-src/ext/phar/phar_object.c:1.266.2.36
--- php-src/ext/phar/phar_object.c:1.266.2.35   Wed Jul 16 15:09:39 2008
+++ php-src/ext/phar/phar_object.c      Tue Jul 22 07:03:00 2008
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: phar_object.c,v 1.266.2.35 2008/07/16 15:09:39 dmitry Exp $ */
+/* $Id: phar_object.c,v 1.266.2.36 2008/07/22 07:03:00 dmitry Exp $ */
 
 #include "phar_internal.h"
 #include "func_interceptors.h"
@@ -50,21 +50,24 @@
 }
 /* }}} */
 
-static void phar_mung_server_vars(char *fname, char *entry, int entry_len, 
char *basename, int basename_len, char *request_uri, int request_uri_len 
TSRMLS_DC) /* {{{ */
+static void phar_mung_server_vars(char *fname, char *entry, int entry_len, 
char *basename, char *request_uri, int request_uri_len TSRMLS_DC) /* {{{ */
 {
-       zval **_SERVER, **stuff;
+       HashTable *_SERVER;
+       zval **stuff;
        char *path_info;
+       int basename_len = strlen(basename);
 
        /* "tweak" $_SERVER variables requested in earlier call to 
Phar::mungServer() */
-       if (SUCCESS != zend_hash_find(&EG(symbol_table), "_SERVER", 
sizeof("_SERVER"), (void **) &_SERVER)) {
+       if (!PG(http_globals)[TRACK_VARS_SERVER]) {
                return;
        }
 
+       _SERVER = Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER]);
+
        /* PATH_INFO and PATH_TRANSLATED should always be munged */
-       if (SUCCESS == zend_hash_find(Z_ARRVAL_PP(_SERVER), "PATH_INFO", 
sizeof("PATH_INFO"), (void **) &stuff)) { 
+       if (SUCCESS == zend_hash_find(_SERVER, "PATH_INFO", 
sizeof("PATH_INFO"), (void **) &stuff)) { 
                int code; 
                zval *temp; 
-               char newname[] = "PHAR_PATH_INFO";
 
                path_info = Z_STRVAL_PP(stuff);
                code = Z_STRLEN_PP(stuff);
@@ -73,13 +76,12 @@
 
                        MAKE_STD_ZVAL(temp); 
                        ZVAL_STRINGL(temp, path_info, code, 0);
-                       zend_hash_update(Z_ARRVAL_PP(_SERVER), newname, 
sizeof(newname), (void *) &temp, sizeof(zval **), NULL);
+                       zend_hash_update(_SERVER, "PHAR_PATH_INFO", 
sizeof("PHAR_PATH_INFO"), (void *) &temp, sizeof(zval **), NULL);
                }
        }
-       if (SUCCESS == zend_hash_find(Z_ARRVAL_PP(_SERVER), "PATH_TRANSLATED", 
sizeof("PATH_TRANSLATED"), (void **) &stuff)) { 
+       if (SUCCESS == zend_hash_find(_SERVER, "PATH_TRANSLATED", 
sizeof("PATH_TRANSLATED"), (void **) &stuff)) { 
                int code; 
                zval *temp; 
-               char newname[] = "PHAR_PATH_TRANSLATED";
 
                path_info = Z_STRVAL_PP(stuff); 
                code = Z_STRLEN_PP(stuff); 
@@ -87,16 +89,15 @@
 
                MAKE_STD_ZVAL(temp);
                ZVAL_STRINGL(temp, path_info, code, 0);
-               zend_hash_update(Z_ARRVAL_PP(_SERVER), newname, 
sizeof(newname), (void *) &temp, sizeof(zval **), NULL); 
+               zend_hash_update(_SERVER, "PHAR_PATH_TRANSLATED", 
sizeof("PHAR_PATH_TRANSLATED"), (void *) &temp, sizeof(zval **), NULL); 
        }
-       if (!PHAR_GLOBALS->phar_SERVER_mung_list.arBuckets || 
!zend_hash_num_elements(&(PHAR_GLOBALS->phar_SERVER_mung_list))) {
+       if (!PHAR_GLOBALS->phar_SERVER_mung_list) {
                return;
        }
-       if (zend_hash_exists(&(PHAR_GLOBALS->phar_SERVER_mung_list), 
"REQUEST_URI", sizeof("REQUEST_URI")-1)) {
-               if (SUCCESS == zend_hash_find(Z_ARRVAL_PP(_SERVER), 
"REQUEST_URI", sizeof("REQUEST_URI"), (void **) &stuff)) { 
+       if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_REQUEST_URI) {
+               if (SUCCESS == zend_hash_find(_SERVER, "REQUEST_URI", 
sizeof("REQUEST_URI"), (void **) &stuff)) { 
                        int code;
                        zval *temp;
-                       char newname[] = "PHAR_REQUEST_URI";
 
                        path_info = Z_STRVAL_PP(stuff);
                        code = Z_STRLEN_PP(stuff);
@@ -105,15 +106,14 @@
 
                                MAKE_STD_ZVAL(temp);
                                ZVAL_STRINGL(temp, path_info, code, 0);
-                               zend_hash_update(Z_ARRVAL_PP(_SERVER), newname, 
sizeof(newname), (void *) &temp, sizeof(zval **), NULL);
+                               zend_hash_update(_SERVER, "PHAR_REQUEST_URI", 
sizeof("PHAR_REQUEST_URI"), (void *) &temp, sizeof(zval **), NULL);
                        }
                }
        }
-       if (zend_hash_exists(&(PHAR_GLOBALS->phar_SERVER_mung_list), 
"PHP_SELF", sizeof("PHP_SELF")-1)) {
-               if (SUCCESS == zend_hash_find(Z_ARRVAL_PP(_SERVER), "PHP_SELF", 
sizeof("PHP_SELF"), (void **) &stuff)) { 
+       if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_PHP_SELF) {
+               if (SUCCESS == zend_hash_find(_SERVER, "PHP_SELF", 
sizeof("PHP_SELF"), (void **) &stuff)) { 
                        int code;
                        zval *temp;
-                       char newname[] = "PHAR_PHP_SELF";
 
                        path_info = Z_STRVAL_PP(stuff);
                        code = Z_STRLEN_PP(stuff);
@@ -122,16 +122,15 @@
 
                                MAKE_STD_ZVAL(temp);
                                ZVAL_STRINGL(temp, path_info, code, 0);
-                               zend_hash_update(Z_ARRVAL_PP(_SERVER), newname, 
sizeof(newname), (void *) &temp, sizeof(zval **), NULL);
+                               zend_hash_update(_SERVER, "PHAR_PHP_SELF", 
sizeof("PHAR_PHP_SELF"), (void *) &temp, sizeof(zval **), NULL);
                        }
                }
        }
 
-       if (zend_hash_exists(&(PHAR_GLOBALS->phar_SERVER_mung_list), 
"SCRIPT_NAME", sizeof("SCRIPT_NAME")-1)) {
-               if (SUCCESS == zend_hash_find(Z_ARRVAL_PP(_SERVER), 
"SCRIPT_NAME", sizeof("SCRIPT_NAME"), (void **) &stuff)) { 
+       if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_SCRIPT_NAME) {
+               if (SUCCESS == zend_hash_find(_SERVER, "SCRIPT_NAME", 
sizeof("SCRIPT_NAME"), (void **) &stuff)) { 
                        int code; 
                        zval *temp; 
-                       char newname[] = "PHAR_SCRIPT_NAME";
                                                        
                        path_info = Z_STRVAL_PP(stuff); 
                        code = Z_STRLEN_PP(stuff); 
@@ -139,15 +138,14 @@
                                                
                        MAKE_STD_ZVAL(temp);
                        ZVAL_STRINGL(temp, path_info, code, 0);
-                       zend_hash_update(Z_ARRVAL_PP(_SERVER), newname, 
sizeof(newname), (void *) &temp, sizeof(zval **), NULL); 
+                       zend_hash_update(_SERVER, "PHAR_SCRIPT_NAME", 
sizeof("PHAR_SCRIPT_NAME"), (void *) &temp, sizeof(zval **), NULL); 
                } 
        }
 
-       if (zend_hash_exists(&(PHAR_GLOBALS->phar_SERVER_mung_list), 
"SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME")-1)) {
-               if (SUCCESS == zend_hash_find(Z_ARRVAL_PP(_SERVER), 
"SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME"), (void **) &stuff)) {
+       if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_SCRIPT_FILENAME) {
+               if (SUCCESS == zend_hash_find(_SERVER, "SCRIPT_FILENAME", 
sizeof("SCRIPT_FILENAME"), (void **) &stuff)) {
                        int code; 
                        zval *temp; 
-                       char newname[] = "PHAR_SCRIPT_FILENAME";
 
                        path_info = Z_STRVAL_PP(stuff); 
                        code = Z_STRLEN_PP(stuff); 
@@ -155,19 +153,19 @@
 
                        MAKE_STD_ZVAL(temp);
                        ZVAL_STRINGL(temp, path_info, code, 0);
-                       zend_hash_update(Z_ARRVAL_PP(_SERVER), newname, 
sizeof(newname), (void *) &temp, sizeof(zval **), NULL); 
+                       zend_hash_update(_SERVER, "PHAR_SCRIPT_FILENAME", 
sizeof("PHAR_SCRIPT_FILENAME"), (void *) &temp, sizeof(zval **), NULL); 
                }
        }
 }
 /* }}} */
 
-static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, 
char *mime_type, int code, char *entry, int entry_len, char *arch, int 
arch_len, char *basename, int basename_len, char *ru, int ru_len TSRMLS_DC) /* 
{{{ */
+static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, 
char *mime_type, int code, char *entry, int entry_len, char *arch, int 
arch_len, char *basename, char *ru, int ru_len TSRMLS_DC) /* {{{ */
 {
        char *name = NULL, buf[8192], *cwd;
        zend_syntax_highlighter_ini syntax_highlighter_ini;
        sapi_header_line ctr = {0};
        size_t got;
-       int dummy = 1, name_len, ret;
+       int dummy = 1, name_len;
        zend_file_handle file_handle;
        zend_op_array *new_op_array;
        zval *result = NULL;
@@ -234,7 +232,7 @@
                        zend_bailout();
                case PHAR_MIME_PHP:
                        if (basename) {
-                               phar_mung_server_vars(arch, entry, entry_len, 
basename, basename_len, ru, ru_len TSRMLS_CC);
+                               phar_mung_server_vars(arch, entry, entry_len, 
basename, ru, ru_len TSRMLS_CC);
                                efree(basename);
                        }
                        if (entry[0] == '/') {
@@ -251,8 +249,8 @@
 
                        PHAR_G(cwd) = NULL;
                        PHAR_G(cwd_len) = 0;
-                       if (!zend_hash_exists(&EG(included_files), name, 
name_len+1)) {
-                               if ((cwd = strrchr(entry, '/'))) {
+                       if (zend_hash_add(&EG(included_files), name, 
name_len+1, (void *)&dummy, sizeof(int), NULL) == SUCCESS) {
+                               if ((cwd = zend_memrchr(entry, '/', 
entry_len))) {
                                        PHAR_G(cwd_init) = 1;
                                        if (entry == cwd) {
                                                /* root directory */
@@ -267,8 +265,8 @@
                                        }
                                }
                                new_op_array = zend_compile_file(&file_handle, 
ZEND_REQUIRE TSRMLS_CC);
-                               if (new_op_array) {
-                                       zend_hash_add(&EG(included_files), 
name, name_len+1, (void *)&dummy, sizeof(int), NULL);
+                               if (!new_op_array) {
+                                       zend_hash_del(&EG(included_files), 
name, name_len+1);
                                }
                                zend_destroy_file_handle(&file_handle 
TSRMLS_CC);
                        } else {
@@ -330,7 +328,7 @@
                info = phar_get_entry_info(phar, f404, f404_len, NULL, 1 
TSRMLS_CC);
 
                if (info) {
-                       phar_file_action(phar, info, "text/html", 
PHAR_MIME_PHP, f404, f404_len, fname, fname_len, NULL, 0, NULL, 0 TSRMLS_CC);
+                       phar_file_action(phar, info, "text/html", 
PHAR_MIME_PHP, f404, f404_len, fname, fname_len, NULL, NULL, 0 TSRMLS_CC);
                        return;
                }
        }
@@ -524,12 +522,10 @@
  */
 PHP_METHOD(Phar, webPhar)
 {
-       HashTable mimetypes;
-       phar_mime_type mime;
        zval *mimeoverride = NULL, *rewrite = NULL;
        char *alias = NULL, *error, *index_php = NULL, *f404 = NULL, *ru = NULL;
        int alias_len = 0, ret, f404_len = 0, free_pathinfo = 0, ru_len = 0;
-       char *fname, *basename, *path_info, *mime_type, *entry, *pt;
+       char *fname, *basename, *path_info, *mime_type = NULL, *entry, *pt;
        int fname_len, entry_len, code, index_php_len = 0, not_cgi;
        phar_archive_data *phar = NULL;
        phar_entry_info *info;
@@ -557,7 +553,7 @@
        fname = estrndup(fname, fname_len);
        phar_unixify_path_separators(fname, fname_len);
 #endif
-       basename = strrchr(fname, '/');
+       basename = zend_memrchr(fname, '/', fname_len);
        if (!basename) {
                basename = fname;
        } else {
@@ -566,26 +562,52 @@
 
        if ((strlen(sapi_module.name) == sizeof("cgi-fcgi")-1 && 
!strncmp(sapi_module.name, "cgi-fcgi", sizeof("cgi-fcgi")-1))
                || (strlen(sapi_module.name) == sizeof("cgi")-1 && 
!strncmp(sapi_module.name, "cgi", sizeof("cgi")-1))) {
-               char *testit;
 
-               testit = sapi_getenv("SCRIPT_NAME", sizeof("SCRIPT_NAME")-1 
TSRMLS_CC);
-               if (!(pt = strstr(testit, basename))) {
-                       efree(testit);
-                       return;
-               }
-               path_info = sapi_getenv("PATH_INFO", sizeof("PATH_INFO")-1 
TSRMLS_CC);
-               if (path_info) {
-                       entry = path_info;
-                       entry_len = strlen(entry);
-                       spprintf(&path_info, 0, "%s%s", testit, path_info);
-                       free_pathinfo = 1;
+               if (PG(http_globals)[TRACK_VARS_SERVER]) {
+                       HashTable *ht = 
Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER]);
+                       zval **z_script_name, **z_path_info;
+
+                       if (SUCCESS != zend_hash_find(ht, "SCRIPT_NAME", 
sizeof("SCRIPT_NAME"), (void**)&z_script_name) ||
+                           IS_STRING != Z_TYPE_PP(z_script_name) ||
+                           !strstr(Z_STRVAL_PP(z_script_name), basename)) {
+                               return;
+                       }
+                       if (SUCCESS == zend_hash_find(ht, "PATH_INFO", 
sizeof("PATH_INFO"), (void**)&z_path_info) &&
+                           IS_STRING == Z_TYPE_PP(z_path_info)) {
+                               entry_len = Z_STRLEN_PP(z_path_info);
+                               entry = estrndup(Z_STRVAL_PP(z_path_info), 
entry_len);
+                               path_info = emalloc(Z_STRLEN_PP(z_script_name) 
+ entry_len + 1);
+                               memcpy(path_info, Z_STRVAL_PP(z_script_name), 
Z_STRLEN_PP(z_script_name));
+                               memcpy(path_info + Z_STRLEN_PP(z_script_name), 
entry, entry_len + 1);
+                               free_pathinfo = 1;
+                       } else {
+                               entry_len = 0;
+                               entry = estrndup("", 0);
+                               path_info = Z_STRVAL_PP(z_script_name);
+                       }
+                       pt = estrndup(Z_STRVAL_PP(z_script_name), 
Z_STRLEN_PP(z_script_name));
                } else {
-                       path_info = testit;
-                       free_pathinfo = 1;
-                       entry = estrndup("", 0);
-                       entry_len = 0;
+                       char *testit;
+
+                       testit = sapi_getenv("SCRIPT_NAME", 
sizeof("SCRIPT_NAME")-1 TSRMLS_CC);
+                       if (!(pt = strstr(testit, basename))) {
+                               efree(testit);
+                               return;
+                       }
+                       path_info = sapi_getenv("PATH_INFO", 
sizeof("PATH_INFO")-1 TSRMLS_CC);
+                       if (path_info) {
+                               entry = path_info;
+                               entry_len = strlen(entry);
+                               spprintf(&path_info, 0, "%s%s", testit, 
path_info);
+                               free_pathinfo = 1;
+                       } else {
+                               path_info = testit;
+                               free_pathinfo = 1;
+                               entry = estrndup("", 0);
+                               entry_len = 0;
+                       }
+                       pt = estrndup(testit, (pt - testit) + (fname_len - 
(basename - fname)));
                }
-               pt = estrndup(testit, (pt - testit) + (fname_len - (basename - 
fname)));
                not_cgi = 0;
        } else {
                path_info = SG(request_info).request_uri;
@@ -744,124 +766,46 @@
                zend_bailout();
        }
 
-       /* set up mime types */
-       zend_hash_init(&mimetypes, sizeof(phar_mime_type *), 
zend_get_hash_value, NULL, 0);
-#define PHAR_SET_MIME(mimetype, ret, fileext) \
-               mime.mime = mimetype; \
-               mime.len = sizeof((mimetype))+1; \
-               mime.type = ret; \
-               zend_hash_add(&mimetypes, fileext, sizeof(fileext)-1, (void 
*)&mime, sizeof(phar_mime_type), NULL); \
-
-       PHAR_SET_MIME("text/html", PHAR_MIME_PHPS, "phps")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "c")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "cc")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "cpp")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "c++")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "dtd")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "h")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "log")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "rng")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "txt")
-       PHAR_SET_MIME("text/plain", PHAR_MIME_OTHER, "xsd")
-       PHAR_SET_MIME("", PHAR_MIME_PHP, "php")
-       PHAR_SET_MIME("", PHAR_MIME_PHP, "inc")
-       PHAR_SET_MIME("video/avi", PHAR_MIME_OTHER, "avi")
-       PHAR_SET_MIME("image/bmp", PHAR_MIME_OTHER, "bmp")
-       PHAR_SET_MIME("text/css", PHAR_MIME_OTHER, "css")
-       PHAR_SET_MIME("image/gif", PHAR_MIME_OTHER, "gif")
-       PHAR_SET_MIME("text/html", PHAR_MIME_OTHER, "htm")
-       PHAR_SET_MIME("text/html", PHAR_MIME_OTHER, "html")
-       PHAR_SET_MIME("text/html", PHAR_MIME_OTHER, "htmls")
-       PHAR_SET_MIME("image/x-ico", PHAR_MIME_OTHER, "ico")
-       PHAR_SET_MIME("image/jpeg", PHAR_MIME_OTHER, "jpe")
-       PHAR_SET_MIME("image/jpeg", PHAR_MIME_OTHER, "jpg")
-       PHAR_SET_MIME("image/jpeg", PHAR_MIME_OTHER, "jpeg")
-       PHAR_SET_MIME("application/x-javascript", PHAR_MIME_OTHER, "js")
-       PHAR_SET_MIME("audio/midi", PHAR_MIME_OTHER, "midi")
-       PHAR_SET_MIME("audio/midi", PHAR_MIME_OTHER, "mid")
-       PHAR_SET_MIME("audio/mod", PHAR_MIME_OTHER, "mod")
-       PHAR_SET_MIME("movie/quicktime", PHAR_MIME_OTHER, "mov")
-       PHAR_SET_MIME("audio/mp3", PHAR_MIME_OTHER, "mp3")
-       PHAR_SET_MIME("video/mpeg", PHAR_MIME_OTHER, "mpg")
-       PHAR_SET_MIME("video/mpeg", PHAR_MIME_OTHER, "mpeg")
-       PHAR_SET_MIME("application/pdf", PHAR_MIME_OTHER, "pdf")
-       PHAR_SET_MIME("image/png", PHAR_MIME_OTHER, "png")
-       PHAR_SET_MIME("application/shockwave-flash", PHAR_MIME_OTHER, "swf")
-       PHAR_SET_MIME("image/tiff", PHAR_MIME_OTHER, "tif")
-       PHAR_SET_MIME("image/tiff", PHAR_MIME_OTHER, "tiff")
-       PHAR_SET_MIME("audio/wav", PHAR_MIME_OTHER, "wav")
-       PHAR_SET_MIME("image/xbm", PHAR_MIME_OTHER, "xbm")
-       PHAR_SET_MIME("text/xml", PHAR_MIME_OTHER, "xml")
-
-       /* set up user overrides */
-#define PHAR_SET_USER_MIME(ret) \
-               if (Z_TYPE_PP(val) == IS_LONG) { \
-                       mime.mime = ""; \
-                       mime.len = 0; \
-               } else { \
-                       mime.mime = Z_STRVAL_PP(val); \
-                       mime.len = Z_STRLEN_PP(val); \
-               } \
-               mime.type = ret; \
-               zend_hash_update(&mimetypes, str_key, keylen-1, (void *)&mime, 
sizeof(phar_mime_type), NULL);
-
-       if (mimeoverride) {
-               if (!zend_hash_num_elements(Z_ARRVAL_P(mimeoverride))) {
-                       goto no_mimes;
-               }
-               for 
(zend_hash_internal_pointer_reset(Z_ARRVAL_P(mimeoverride)); SUCCESS == 
zend_hash_has_more_elements(Z_ARRVAL_P(mimeoverride)); 
zend_hash_move_forward(Z_ARRVAL_P(mimeoverride))) {
-                       zval **val;
-                       phar_zstr key;
-                       char *str_key;
-                       uint keylen;
-                       ulong intkey;
-
-                       if (HASH_KEY_IS_LONG == 
zend_hash_get_current_key_ex(Z_ARRVAL_P(mimeoverride), &key, &keylen, &intkey, 
0, NULL)) {
-                               zend_throw_exception_ex(phar_ce_PharException, 
0 TSRMLS_CC, "Key of MIME type overrides array must be a file extension, was 
\"%d\"", intkey);
+       if (mimeoverride && zend_hash_num_elements(Z_ARRVAL_P(mimeoverride))) {
+               char *ext = zend_memrchr(entry, '.', entry_len);
+               zval **val;
+
+               if (ext) {
+                       ++ext;
+
+                       if (SUCCESS == zend_hash_find(Z_ARRVAL_P(mimeoverride), 
ext, strlen(ext)+1, (void **) &val)) {
+                               switch (Z_TYPE_PP(val)) {
+                                       case IS_LONG :
+                                               if (Z_LVAL_PP(val) == 
PHAR_MIME_PHP || Z_LVAL_PP(val) == PHAR_MIME_PHPS) {
+                                                       mime_type = "";
+                                                       code = Z_LVAL_PP(val);
+                                               } else {
+                                                       
zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "Unknown mime type 
specifier used, only Phar::PHP, Phar::PHPS and a mime type string are allowed");
 #ifdef PHP_WIN32
-                               efree(fname);
-#endif
-                               RETURN_FALSE;
-                       }
-
-                       PHAR_STR(key, str_key);
-
-                       if (FAILURE == 
zend_hash_get_current_data(Z_ARRVAL_P(mimeoverride), (void **) &val)) {
-                               zend_throw_exception_ex(phar_ce_PharException, 
0 TSRMLS_CC, "Failed to retrieve Mime type for extension \"%s\"", str_key);
-#ifdef PHP_WIN32
-                               efree(fname);
+                                                       efree(fname);
 #endif
-                               RETURN_FALSE;
-                       }
-                       switch (Z_TYPE_PP(val)) {
-                               case IS_LONG :
-                                       if (Z_LVAL_PP(val) == PHAR_MIME_PHP || 
Z_LVAL_PP(val) == PHAR_MIME_PHPS) {
-                                               PHAR_SET_USER_MIME((char) 
Z_LVAL_PP(val))
-                                       } else {
-                                               
zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "Unknown mime type 
specifier used, only Phar::PHP, Phar::PHPS and a mime type string are allowed");
+                                                       RETURN_FALSE;
+                                               }
+                                               break;
+                                       case IS_STRING :
+                                               mime_type = Z_STRVAL_PP(val);
+                                               code = PHAR_MIME_OTHER;
+                                               break;
+                                       default :
+                                               
zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "Unknown mime type 
specifier used (not a string or int), only Phar::PHP, Phar::PHPS and a mime 
type string are allowed");
 #ifdef PHP_WIN32
                                                efree(fname);
 #endif
                                                RETURN_FALSE;
-                                       }
-                                       break;
-                               case IS_STRING :
-                                       PHAR_SET_USER_MIME(PHAR_MIME_OTHER)
-                                       break;
-                               default :
-                                       
zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "Unknown mime type 
specifier used (not a string or int), only Phar::PHP, Phar::PHPS and a mime 
type string are allowed");
-#ifdef PHP_WIN32
-                                       efree(fname);
-#endif
-                                       RETURN_FALSE;
+                               }
                        }
                }
        }
 
-no_mimes:
-       code = phar_file_type(&mimetypes, entry, &mime_type TSRMLS_CC);
-       zend_hash_destroy(&mimetypes);
-       ret = phar_file_action(phar, info, mime_type, code, entry, entry_len, 
fname, fname_len, pt, strlen(pt), ru, ru_len TSRMLS_CC);
+       if (!mime_type) {
+               code = phar_file_type(&PHAR_G(mime_types), entry, &mime_type 
TSRMLS_CC);
+       }
+       ret = phar_file_action(phar, info, mime_type, code, entry, entry_len, 
fname, fname_len, pt, ru, ru_len TSRMLS_CC);
 }
 /* }}} */
 
@@ -874,7 +818,6 @@
 PHP_METHOD(Phar, mungServer)
 {
        zval *mungvalues;
-       int php_self = 0, request_uri = 0, script_name = 0, script_filename = 0;
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &mungvalues) 
== FAILURE) {
                return;
        }
@@ -901,35 +844,19 @@
                        zend_throw_exception_ex(phar_ce_PharException, 0 
TSRMLS_CC, "Non-string value passed to Phar::mungServer(), expecting an array 
of any of these strings: PHP_SELF, REQUEST_URI, SCRIPT_FILENAME, SCRIPT_NAME");
                        return;
                }
-               if (!php_self && Z_STRLEN_PP(data) == sizeof("PHP_SELF")-1 && 
!strncmp(Z_STRVAL_PP(data), "PHP_SELF", sizeof("PHP_SELF")-1)) {
-                       if (SUCCESS != 
zend_hash_add_empty_element(&(PHAR_GLOBALS->phar_SERVER_mung_list), "PHP_SELF", 
sizeof("PHP_SELF")-1)) {
-                               zend_throw_exception_ex(phar_ce_PharException, 
0 TSRMLS_CC, "Unable to add PHP_SELF to Phar::mungServer() list of values to 
mung");
-                               return;
-                       }
-                       php_self = 1;
+               if (Z_STRLEN_PP(data) == sizeof("PHP_SELF")-1 && 
!strncmp(Z_STRVAL_PP(data), "PHP_SELF", sizeof("PHP_SELF")-1)) {
+                       PHAR_GLOBALS->phar_SERVER_mung_list |= 
PHAR_MUNG_PHP_SELF;
                }
                if (Z_STRLEN_PP(data) == sizeof("REQUEST_URI")-1) {
-                       if (!request_uri && !strncmp(Z_STRVAL_PP(data), 
"REQUEST_URI", sizeof("REQUEST_URI")-1)) {
-                               if (SUCCESS != 
zend_hash_add_empty_element(&(PHAR_GLOBALS->phar_SERVER_mung_list), 
"REQUEST_URI", sizeof("REQUEST_URI")-1)) {
-                                       
zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "Unable to add 
REQUEST_URI to Phar::mungServer() list of values to mung");
-                                       return;
-                               }
-                               request_uri = 1;
+                       if (!strncmp(Z_STRVAL_PP(data), "REQUEST_URI", 
sizeof("REQUEST_URI")-1)) {
+                               PHAR_GLOBALS->phar_SERVER_mung_list |= 
PHAR_MUNG_REQUEST_URI;
                        }
-                       if (!script_name && !strncmp(Z_STRVAL_PP(data), 
"SCRIPT_NAME", sizeof("SCRIPT_NAME")-1)) {
-                               if (SUCCESS != 
zend_hash_add_empty_element(&(PHAR_GLOBALS->phar_SERVER_mung_list), 
"SCRIPT_NAME", sizeof("SCRIPT_NAME")-1)) {
-                                       
zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "Unable to add 
SCRIPT_NAME to Phar::mungServer() list of values to mung");
-                                       return;
-                               }
-                               script_name = 1;
+                       if (!strncmp(Z_STRVAL_PP(data), "SCRIPT_NAME", 
sizeof("SCRIPT_NAME")-1)) {
+                               PHAR_GLOBALS->phar_SERVER_mung_list |= 
PHAR_MUNG_SCRIPT_NAME;
                        }
                }
-               if (!script_filename && Z_STRLEN_PP(data) == 
sizeof("SCRIPT_FILENAME")-1 && !strncmp(Z_STRVAL_PP(data), "SCRIPT_FILENAME", 
sizeof("SCRIPT_FILENAME")-1)) {
-                       if (SUCCESS != 
zend_hash_add_empty_element(&(PHAR_GLOBALS->phar_SERVER_mung_list), 
"SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME")-1)) {
-                               zend_throw_exception_ex(phar_ce_PharException, 
0 TSRMLS_CC, "Unable to add SCRIPT_FILENAME to Phar::mungServer() list of 
values to mung");
-                               return;
-                       }
-                       script_filename = 1;
+               if (Z_STRLEN_PP(data) == sizeof("SCRIPT_FILENAME")-1 && 
!strncmp(Z_STRVAL_PP(data), "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME")-1)) {
+                       PHAR_GLOBALS->phar_SERVER_mung_list |= 
PHAR_MUNG_SCRIPT_FILENAME;
                }
        }
 }
@@ -1948,7 +1875,7 @@
        }
 
        oldpath = estrndup(phar->fname, phar->fname_len);
-       oldname = strrchr(phar->fname, '/');
+       oldname = zend_memrchr(phar->fname, '/', phar->fname_len);
        ++oldname;
 
        basename = estrndup(oldname, strlen(oldname));
@@ -3777,7 +3704,7 @@
                return FAILURE;
        }
        /* perform dirname */
-       slash = strrchr(entry->filename, '/');
+       slash = zend_memrchr(entry->filename, '/', entry->filename_len);
        if (slash) {
                fullpath[dest_len + (slash - entry->filename) + 1] = '\0';
        } else {
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/frontcontroller11.phpt?r1=1.5.2.1&r2=1.5.2.2&diff_format=u
Index: php-src/ext/phar/tests/frontcontroller11.phpt
diff -u php-src/ext/phar/tests/frontcontroller11.phpt:1.5.2.1 
php-src/ext/phar/tests/frontcontroller11.phpt:1.5.2.2
--- php-src/ext/phar/tests/frontcontroller11.phpt:1.5.2.1       Tue May 13 
19:17:17 2008
+++ php-src/ext/phar/tests/frontcontroller11.phpt       Tue Jul 22 07:03:00 2008
@@ -4,6 +4,7 @@
 default_charset=
 --SKIPIF--
 <?php if (!extension_loaded("phar")) die("skip"); ?>
+<?php die("skip"); ?>
 --ENV--
 SCRIPT_NAME=/frontcontroller11.php
 REQUEST_URI=/frontcontroller11.php/a.php
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/cache_list/frontcontroller11.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/phar/tests/cache_list/frontcontroller11.phpt
diff -u php-src/ext/phar/tests/cache_list/frontcontroller11.phpt:1.1.2.1 
php-src/ext/phar/tests/cache_list/frontcontroller11.phpt:1.1.2.2
--- php-src/ext/phar/tests/cache_list/frontcontroller11.phpt:1.1.2.1    Sun Jun 
22 00:49:53 2008
+++ php-src/ext/phar/tests/cache_list/frontcontroller11.phpt    Tue Jul 22 
07:03:00 2008
@@ -5,6 +5,7 @@
 phar.cache_list={PWD}/frontcontroller11.php
 --SKIPIF--
 <?php if (!extension_loaded("phar")) die("skip"); ?>
+<?php die("skip"); ?>
 --ENV--
 SCRIPT_NAME=/frontcontroller11.php
 REQUEST_URI=/frontcontroller11.php/a.php
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/cache_list/files/frontcontroller6.phar?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/phar/tests/cache_list/files/frontcontroller6.phar
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/cache_list/files/frontcontroller7.phar?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/phar/tests/cache_list/files/frontcontroller7.phar
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/files/frontcontroller5.phar?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/phar/tests/files/frontcontroller5.phar
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/files/frontcontroller6.phar?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/phar/tests/files/frontcontroller6.phar
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/files/frontcontroller6.phar.inc?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/phar/tests/files/frontcontroller6.phar.inc
diff -u php-src/ext/phar/tests/files/frontcontroller6.phar.inc:1.1 
php-src/ext/phar/tests/files/frontcontroller6.phar.inc:1.1.2.1
--- php-src/ext/phar/tests/files/frontcontroller6.phar.inc:1.1  Wed Feb 20 
13:11:39 2008
+++ php-src/ext/phar/tests/files/frontcontroller6.phar.inc      Tue Jul 22 
07:03:00 2008
@@ -5,7 +5,7 @@
 $a['a.jpg'] = 'hio';
 $a['a.phps'] = '<?php function hio(){}';
 $a->setStub('<?php
-Phar::webPhar("whatever", "index.php", null, array("blah" => 100));
+Phar::webPhar("whatever", "index.php", null, array("php" => 100));
 echo "oops did not run\n";
 var_dump($_ENV, $_SERVER);
 __HALT_COMPILER();');
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/files/frontcontroller7.phar?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/phar/tests/files/frontcontroller7.phar
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/files/frontcontroller7.phar.inc?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/phar/tests/files/frontcontroller7.phar.inc
diff -u php-src/ext/phar/tests/files/frontcontroller7.phar.inc:1.1 
php-src/ext/phar/tests/files/frontcontroller7.phar.inc:1.1.2.1
--- php-src/ext/phar/tests/files/frontcontroller7.phar.inc:1.1  Wed Feb 20 
13:11:39 2008
+++ php-src/ext/phar/tests/files/frontcontroller7.phar.inc      Tue Jul 22 
07:03:00 2008
@@ -5,7 +5,7 @@
 $a['a.jpg'] = 'hio';
 $a['a.phps'] = '<?php function hio(){}';
 $a->setStub('<?php
-Phar::webPhar("whatever", "index.php", null, array("blah" => null));
+Phar::webPhar("whatever", "index.php", null, array("php" => null));
 echo "oops did not run\n";
 var_dump($_ENV, $_SERVER);
 __HALT_COMPILER();');
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/frontcontroller11.phar.phpt?r1=1.5.2.1&r2=1.5.2.2&diff_format=u
Index: php-src/ext/phar/tests/tar/frontcontroller11.phar.phpt
diff -u php-src/ext/phar/tests/tar/frontcontroller11.phar.phpt:1.5.2.1 
php-src/ext/phar/tests/tar/frontcontroller11.phar.phpt:1.5.2.2
--- php-src/ext/phar/tests/tar/frontcontroller11.phar.phpt:1.5.2.1      Tue May 
13 19:17:17 2008
+++ php-src/ext/phar/tests/tar/frontcontroller11.phar.phpt      Tue Jul 22 
07:03:00 2008
@@ -4,6 +4,7 @@
 default_charset=
 --SKIPIF--
 <?php if (!extension_loaded("phar")) die("skip"); ?>
+<?php die("skip"); ?>
 --ENV--
 SCRIPT_NAME=/frontcontroller11.phar.php
 REQUEST_URI=/frontcontroller11.phar.php/a.php
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller6.phar.inc?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/phar/tests/tar/files/frontcontroller6.phar.inc
diff -u php-src/ext/phar/tests/tar/files/frontcontroller6.phar.inc:1.1 
php-src/ext/phar/tests/tar/files/frontcontroller6.phar.inc:1.1.2.1
--- php-src/ext/phar/tests/tar/files/frontcontroller6.phar.inc:1.1      Tue Feb 
12 16:42:34 2008
+++ php-src/ext/phar/tests/tar/files/frontcontroller6.phar.inc  Tue Jul 22 
07:03:00 2008
@@ -5,7 +5,7 @@
 $a['a.jpg'] = 'hio';
 $a['a.phps'] = '<?php function hio(){}';
 $a->setStub('<?php
-Phar::webPhar("whatever", "index.php", null, array("blah" => 100));
+Phar::webPhar("whatever", "index.php", null, array("php" => 100));
 echo "oops did not run\n";
 var_dump($_ENV, $_SERVER);
 __HALT_COMPILER();');
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller6.phar.tar?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/phar/tests/tar/files/frontcontroller6.phar.tar
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller7.phar.inc?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/phar/tests/tar/files/frontcontroller7.phar.inc
diff -u php-src/ext/phar/tests/tar/files/frontcontroller7.phar.inc:1.1 
php-src/ext/phar/tests/tar/files/frontcontroller7.phar.inc:1.1.2.1
--- php-src/ext/phar/tests/tar/files/frontcontroller7.phar.inc:1.1      Tue Feb 
12 16:42:34 2008
+++ php-src/ext/phar/tests/tar/files/frontcontroller7.phar.inc  Tue Jul 22 
07:03:00 2008
@@ -5,7 +5,7 @@
 $a['a.jpg'] = 'hio';
 $a['a.phps'] = '<?php function hio(){}';
 $a->setStub('<?php
-Phar::webPhar("whatever", "index.php", null, array("blah" => null));
+Phar::webPhar("whatever", "index.php", null, array("php" => null));
 echo "oops did not run\n";
 var_dump($_ENV, $_SERVER);
 __HALT_COMPILER();');
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/tar/files/frontcontroller7.phar.tar?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/phar/tests/tar/files/frontcontroller7.phar.tar
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zip/frontcontroller11.phar.phpt?r1=1.6.2.2&r2=1.6.2.3&diff_format=u
Index: php-src/ext/phar/tests/zip/frontcontroller11.phar.phpt
diff -u php-src/ext/phar/tests/zip/frontcontroller11.phar.phpt:1.6.2.2 
php-src/ext/phar/tests/zip/frontcontroller11.phar.phpt:1.6.2.3
--- php-src/ext/phar/tests/zip/frontcontroller11.phar.phpt:1.6.2.2      Tue May 
13 19:17:17 2008
+++ php-src/ext/phar/tests/zip/frontcontroller11.phar.phpt      Tue Jul 22 
07:03:00 2008
@@ -5,6 +5,7 @@
 --SKIPIF--
 <?php if (!extension_loaded("phar")) die("skip"); ?>
 <?php if (!extension_loaded("zlib")) die("skip zlib not available"); ?>
+<?php die("skip"); ?>
 --ENV--
 SCRIPT_NAME=/frontcontroller11.phar.php
 REQUEST_URI=/frontcontroller11.phar.php/a.php
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zip/files/frontcontroller6.phar.inc?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/phar/tests/zip/files/frontcontroller6.phar.inc
diff -u php-src/ext/phar/tests/zip/files/frontcontroller6.phar.inc:1.1 
php-src/ext/phar/tests/zip/files/frontcontroller6.phar.inc:1.1.2.1
--- php-src/ext/phar/tests/zip/files/frontcontroller6.phar.inc:1.1      Mon Feb 
11 20:55:43 2008
+++ php-src/ext/phar/tests/zip/files/frontcontroller6.phar.inc  Tue Jul 22 
07:03:00 2008
@@ -5,7 +5,7 @@
 $a['a.jpg'] = 'hio';
 $a['a.phps'] = '<?php function hio(){}';
 $a->setStub('<?php
-Phar::webPhar("whatever", "index.php", null, array("blah" => 100));
+Phar::webPhar("whatever", "index.php", null, array("php" => 100));
 echo "oops did not run\n";
 var_dump($_ENV, $_SERVER);
 __HALT_COMPILER();');
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zip/files/frontcontroller6.phar.zip?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/phar/tests/zip/files/frontcontroller6.phar.zip
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zip/files/frontcontroller7.phar.inc?r1=1.1&r2=1.1.2.1&diff_format=u
Index: php-src/ext/phar/tests/zip/files/frontcontroller7.phar.inc
diff -u php-src/ext/phar/tests/zip/files/frontcontroller7.phar.inc:1.1 
php-src/ext/phar/tests/zip/files/frontcontroller7.phar.inc:1.1.2.1
--- php-src/ext/phar/tests/zip/files/frontcontroller7.phar.inc:1.1      Mon Feb 
11 20:55:43 2008
+++ php-src/ext/phar/tests/zip/files/frontcontroller7.phar.inc  Tue Jul 22 
07:03:00 2008
@@ -5,7 +5,7 @@
 $a['a.jpg'] = 'hio';
 $a['a.phps'] = '<?php function hio(){}';
 $a->setStub('<?php
-Phar::webPhar("whatever", "index.php", null, array("blah" => null));
+Phar::webPhar("whatever", "index.php", null, array("php" => null));
 echo "oops did not run\n";
 var_dump($_ENV, $_SERVER);
 __HALT_COMPILER();');
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zip/files/frontcontroller7.phar.zip?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/phar/tests/zip/files/frontcontroller7.phar.zip

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to