diff -aur php-5.3.3/Zend/zend_multibyte.c php/Zend/zend_multibyte.c --- php-5.3.3/Zend/zend_multibyte.c 2010-01-05 12:46:53.000000000 -0800 +++ php/Zend/zend_multibyte.c 2010-11-19 19:01:25.000000000 -0800 @@ -1128,6 +1128,22 @@ const unsigned char *p; int wchar_size = 2; int le = 0; + const unsigned char halt[] = "__halt_compiler();"; + size_t len = strlen(halt); + + p = script; + while ((p-script) < script_size) { + p = memchr(p, halt[0], script_size-(p-script)); + if (!p) { + break; + } + if (!strncasecmp(p, halt, len)) { + /* assume it's not UTF-16, UTF-32. To be thorough, we'd have to look for __halt_compiler(); in + * UTF-16 and 32, BE and LE and compare the offsets, but let's say this is a fair trade off */ + return NULL; + } + p++; + } /* utf-16 or utf-32? */ p = script; diff -aur php-5.3.6/ext/phar/Makefile.frag php/ext/phar/Makefile.frag --- php-5.3.6/ext/phar/Makefile.frag 2011-02-25 01:32:17.000000000 -0800 +++ php/ext/phar/Makefile.frag 2011-03-18 14:07:34.000000000 -0700 @@ -18,7 +18,7 @@ else \ $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \ fi;` -PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";` +PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";` $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc -@test -d $(builddir)/phar || mkdir $(builddir)/phar @@ -26,17 +26,17 @@ $(builddir)/phar.php: $(srcdir)/build_precommand.php $(srcdir)/phar/*.inc $(srcdir)/phar/*.php $(SAPI_CLI_PATH) -@echo "Generating phar.php" - @$(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(srcdir)/build_precommand.php > $(builddir)/phar.php + $(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(srcdir)/build_precommand.php > $(builddir)/phar.php $(builddir)/phar.phar: $(builddir)/phar.php $(builddir)/phar/phar.inc $(srcdir)/phar/*.inc $(srcdir)/phar/*.php $(SAPI_CLI_PATH) -@echo "Generating phar.phar" -@rm -f $(builddir)/phar.phar -@rm -f $(srcdir)/phar.phar - @$(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(builddir)/phar.php pack -f $(builddir)/phar.phar -a pharcommand -c auto -x \\.svn -p 0 -s $(srcdir)/phar/phar.php -h sha1 -b "$(PHP_PHARCMD_BANG)" $(srcdir)/phar/ - -@chmod +x $(builddir)/phar.phar + $(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(builddir)/phar.php pack -f $(builddir)/phar.phar -a pharcommand -c auto -x \\.svn -p 0 -s $(srcdir)/phar/phar.php -h sha1 -b "$(PHP_PHARCMD_BANG)" $(srcdir)/phar/ + -chmod +x $(builddir)/phar.phar install-pharcmd: pharcmd -@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir) $(INSTALL) $(builddir)/phar.phar $(INSTALL_ROOT)$(bindir) -@rm -f $(INSTALL_ROOT)$(bindir)/phar - $(LN_S) -f $(bindir)/phar.phar $(INSTALL_ROOT)$(bindir)/phar + cd $(INSTALL_ROOT)$(bindir) && $(LN_S) -f phar.phar phar