Skip to content

Commit

Permalink
Merge branch 'imp_6_2' into signatures
Browse files Browse the repository at this point in the history
  • Loading branch information
yunosh committed Oct 24, 2013
2 parents dcc5faf + 94ce7a7 commit 07aa99d
Show file tree
Hide file tree
Showing 22 changed files with 119 additions and 35 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -3,7 +3,7 @@ php:
# - 5.3
- 5.4
- 5.5
env: ACTIVESYNC_SQL_PDO_MYSQL_TEST_CONFIG='{"activesync":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' ALARM_TEST_CONFIG='{"alarm":{"test":{"horde":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' CRYPT_TEST_CONFIG='{"crypt":{"keyserver":false}}' DB_ADAPTER_MYSQL_TEST_CONFIG='{"db":{"adapter":{"mysql":{"test":{"host":"localhost","username":"root","password":"","dbname":"test"}}}}}' DB_ADAPTER_MYSQLI_TEST_CONFIG='{"db":{"adapter":{"mysqli":{"test":{"host":"localhost","username":"root","password":"","dbname":"test"}}}}}' DB_ADAPTER_PDO_MYSQL_TEST_CONFIG='{"db":{"adapter":{"pdo":{"mysql":{"test":{"host":"localhost","username":"root","password":"","dbname":"test"}}}}}}' DB_ADAPTER_PDO_PGSQL_TEST_CONFIG='{"db":{"adapter":{"pdo":{"pgsql":{"test":{"username":"postgres","password":"","dbname":"test"}}}}}}' GROUP_SQL_MYSQL_TEST_CONFIG='{"group":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' GROUP_SQL_MYSQLI_TEST_CONFIG='{"group":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' GROUP_SQL_PDO_MYSQL_TEST_CONFIG='{"group":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' GROUP_SQL_PDO_PGSQL_TEST_CONFIG='{"group":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' HISTORY_SQL_MYSQL_TEST_CONFIG='{"history":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' HISTORY_SQL_MYSQLI_TEST_CONFIG='{"history":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' HISTORY_SQL_PDO_MYSQL_TEST_CONFIG='{"history":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' HISTORY_SQL_PDO_PGSQL_TEST_CONFIG='{"history":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' HTTP_TEST_CONFIG='{"http":{"server":"www.google.com"}}' IMAGE_EXIF_TEST_CONFIG='{"image":{"exiftool":"/usr/bin/exiftool"}}' IMAPCLIENT_TEST_CONFIG='{"imapclient":{"mongo":"localhost"}}' LOCK_MONGO_TEST_CONFIG='{"lock":{"mongo":"localhost"}}' PEAR_TEST_CONFIG='{"pear":{"config":"/etc/pear/pear.conf","server":"pear.horde.org"}}' PREFS_SQL_MYSQL_TEST_CONFIG='{"prefs":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' PREFS_SQL_MYSQLI_TEST_CONFIG='{"prefs":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' PREFS_SQL_PDO_MYSQL_TEST_CONFIG='{"prefs":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' PREFS_SQL_PDO_PGSQL_TEST_CONFIG='{"prefs":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' SERVICE_GRAVATAR_TEST_CONFIG='{"service":{"gravatar":{"server":"http://www.gravatar.com"}}}' SESSIONHANDLER_SQL_MYSQL_TEST_CONFIG='{"sessionhandler":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SESSIONHANDLER_SQL_MYSQLI_TEST_CONFIG='{"sessionhandler":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SESSIONHANDLER_SQL_PDO_MYSQL_TEST_CONFIG='{"sessionhandler":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SESSIONHANDLER_SQL_PDO_PGSQL_TEST_CONFIG='{"sessionhandler":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' SHARE_SQL_MYSQL_TEST_CONFIG='{"share":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SHARE_SQL_MYSQLI_TEST_CONFIG='{"share":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SHARE_SQL_PDO_MYSQL_TEST_CONFIG='{"share":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SHARE_SQL_PDO_PGSQL_TEST_CONFIG='{"share":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' TOKEN_MONGO_TEST_CONFIG='{"token":{"mongo":"localhost"}}' VCS_TEST_CONFIG='{"paths":{"ci":"\/usr\/bin\/ci","co":"\/usr\/bin\/co","rcs":"\/usr\/bin\/rcs","rcsdiff":"\/usr\/bin\/rcsdiff","rlog":"\/usr\/bin\/rlog","cvs":"\/usr\/bin\/cvs","cvsps":"\/usr\/bin\/cvsps","cvsps_home":"\/tmp","svn":"\/usr\/bin\/svn","diff":"\/usr\/bin\/diff","git":"\/usr\/bin\/git"}}' VFS_MONGO_TEST_CONFIG='{"vfs":{"mongo":{"hostspec":"localhost"}}}' VFS_SQL_MYSQL_TEST_CONFIG='{"vfs":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' VFS_SQL_MYSQLI_TEST_CONFIG='{"vfs":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' VFS_SQL_PDO_MYSQL_TEST_CONFIG='{"vfs":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' VFS_SQL_PDO_PGSQL_TEST_CONFIG='{"vfs":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}'
env: ACTIVESYNC_SQL_MYSQL_TEST_CONFIG='{"activesync":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' ACTIVESYNC_SQL_MYSQLI_TEST_CONFIG='{"activesync":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' ACTIVESYNC_SQL_PDO_MYSQL_TEST_CONFIG='{"activesync":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' ALARM_TEST_CONFIG='{"alarm":{"test":{"horde":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' CRYPT_TEST_CONFIG='{"crypt":{"keyserver":false}}' DB_ADAPTER_MYSQL_TEST_CONFIG='{"db":{"adapter":{"mysql":{"test":{"host":"localhost","username":"root","password":"","dbname":"test"}}}}}' DB_ADAPTER_MYSQLI_TEST_CONFIG='{"db":{"adapter":{"mysqli":{"test":{"host":"localhost","username":"root","password":"","dbname":"test"}}}}}' DB_ADAPTER_PDO_MYSQL_TEST_CONFIG='{"db":{"adapter":{"pdo":{"mysql":{"test":{"host":"localhost","username":"root","password":"","dbname":"test"}}}}}}' DB_ADAPTER_PDO_PGSQL_TEST_CONFIG='{"db":{"adapter":{"pdo":{"pgsql":{"test":{"username":"postgres","password":"","dbname":"test"}}}}}}' GROUP_SQL_MYSQL_TEST_CONFIG='{"group":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' GROUP_SQL_MYSQLI_TEST_CONFIG='{"group":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' GROUP_SQL_PDO_MYSQL_TEST_CONFIG='{"group":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' GROUP_SQL_PDO_PGSQL_TEST_CONFIG='{"group":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' HISTORY_SQL_MYSQL_TEST_CONFIG='{"history":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' HISTORY_SQL_MYSQLI_TEST_CONFIG='{"history":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' HISTORY_SQL_PDO_MYSQL_TEST_CONFIG='{"history":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' HISTORY_SQL_PDO_PGSQL_TEST_CONFIG='{"history":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' HTTP_TEST_CONFIG='{"http":{"server":"www.google.com"}}' IMAGE_EXIF_TEST_CONFIG='{"image":{"exiftool":"/usr/bin/exiftool"}}' IMAPCLIENT_TEST_CONFIG='{"imapclient":{"mongo":"localhost"}}' LOCK_MONGO_TEST_CONFIG='{"lock":{"mongo":"localhost"}}' PEAR_TEST_CONFIG='{"pear":{"config":"/etc/pear/pear.conf","server":"pear.horde.org"}}' PREFS_SQL_MYSQL_TEST_CONFIG='{"prefs":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' PREFS_SQL_MYSQLI_TEST_CONFIG='{"prefs":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' PREFS_SQL_PDO_MYSQL_TEST_CONFIG='{"prefs":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' PREFS_SQL_PDO_PGSQL_TEST_CONFIG='{"prefs":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' SERVICE_GRAVATAR_TEST_CONFIG='{"service":{"gravatar":{"server":"http://www.gravatar.com"}}}' SESSIONHANDLER_SQL_MYSQL_TEST_CONFIG='{"sessionhandler":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SESSIONHANDLER_SQL_MYSQLI_TEST_CONFIG='{"sessionhandler":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SESSIONHANDLER_SQL_PDO_MYSQL_TEST_CONFIG='{"sessionhandler":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SESSIONHANDLER_SQL_PDO_PGSQL_TEST_CONFIG='{"sessionhandler":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' SHARE_SQL_MYSQL_TEST_CONFIG='{"share":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SHARE_SQL_MYSQLI_TEST_CONFIG='{"share":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SHARE_SQL_PDO_MYSQL_TEST_CONFIG='{"share":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' SHARE_SQL_PDO_PGSQL_TEST_CONFIG='{"share":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}' TOKEN_MONGO_TEST_CONFIG='{"token":{"mongo":"localhost"}}' VCS_TEST_CONFIG='{"paths":{"ci":"\/usr\/bin\/ci","co":"\/usr\/bin\/co","rcs":"\/usr\/bin\/rcs","rcsdiff":"\/usr\/bin\/rcsdiff","rlog":"\/usr\/bin\/rlog","cvs":"\/usr\/bin\/cvs","cvsps":"\/usr\/bin\/cvsps","cvsps_home":"\/tmp","svn":"\/usr\/bin\/svn","diff":"\/usr\/bin\/diff","git":"\/usr\/bin\/git"}}' VFS_MONGO_TEST_CONFIG='{"vfs":{"mongo":{"hostspec":"localhost"}}}' VFS_SQL_MYSQL_TEST_CONFIG='{"vfs":{"sql":{"mysql":{"adapter":"mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' VFS_SQL_MYSQLI_TEST_CONFIG='{"vfs":{"sql":{"mysqli":{"adapter":"mysqli","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' VFS_SQL_PDO_MYSQL_TEST_CONFIG='{"vfs":{"sql":{"pdo_mysql":{"adapter":"pdo_mysql","host":"localhost","username":"root","password":"","dbname":"test","charset":"utf-8"}}}}' VFS_SQL_PDO_PGSQL_TEST_CONFIG='{"vfs":{"sql":{"pdo_pgsql":{"adapter":"pdo_pgsql","username":"postgres","password":"","dbname":"test","charset":"utf-8"}}}}'
before_install:
- sudo locale-gen cs_CZ.UTF-8 de_DE.UTF-8 tr_TR
- sudo apt-get -qq install libwbxml2-utils aspell rcs cvs cvsps libimage-exiftool-perl
Expand Down
Expand Up @@ -194,7 +194,10 @@ public static function tearDownAfterClass()
if (self::$migrator) {
self::$migrator->down();
}
self::$db = null;
if (self::$db) {
self::$db->disconnect();
self::$db = null;
}
parent::tearDownAfterClass();
}

Expand Down
5 changes: 4 additions & 1 deletion framework/Auth/test/Horde/Auth/Unit/Sql/Base.php
Expand Up @@ -47,7 +47,10 @@ public static function tearDownAfterClass()
if (self::$migrator) {
self::$migrator->down();
}
self::$db = null;
if (self::$db) {
self::$db->disconnect();
self::$db = null;
}
parent::tearDownAfterClass();
}

Expand Down
2 changes: 1 addition & 1 deletion framework/Css_Parser/composer.json
Expand Up @@ -12,7 +12,7 @@
}
],
"version": "1.0.3",
"time": "2013-10-15",
"time": "2013-10-23",
"repositories": [
{
"type": "pear",
Expand Down
28 changes: 16 additions & 12 deletions framework/Css_Parser/lib/Sabberworm/CSS/Parser.php
Expand Up @@ -43,16 +43,6 @@ public function __construct($sText, Settings $oParserSettings = null) {
}
$this->oParserSettings = $oParserSettings;
$this->blockRules = explode('/', AtRule::BLOCK_RULES);

foreach (explode('/', Size::ABSOLUTE_SIZE_UNITS.'/'.Size::RELATIVE_SIZE_UNITS.'/'.Size::NON_SIZE_UNITS) as $val) {
$size = strlen($val);
if (isset($this->sizeUnits[$size])) {
$this->sizeUnits[$size][] = $val;
} else {
$this->sizeUnits[$size] = array($val);
}
}
ksort($this->sizeUnits, SORT_NUMERIC);
}

public function setCharset($sCharset) {
Expand All @@ -66,6 +56,19 @@ public function getCharset() {

public function parse() {
$this->setCharset($this->oParserSettings->sDefaultCharset);

$this->sizeUnits = array();
foreach (explode('/', Size::ABSOLUTE_SIZE_UNITS.'/'.Size::RELATIVE_SIZE_UNITS.'/'.Size::NON_SIZE_UNITS) as $val) {
$val = $this->strtolower($val);
$size = strlen($val);
if (isset($this->sizeUnits[$size])) {
$this->sizeUnits[$size][] = $val;
} else {
$this->sizeUnits[$size] = array($val);
}
}
ksort($this->sizeUnits, SORT_NUMERIC);

$oResult = new Document();
$this->parseDocument($oResult);
return $oResult;
Expand Down Expand Up @@ -409,8 +412,9 @@ private function parseNumericValue($bForColor = false) {

$sUnit = null;
foreach ($this->sizeUnits as $len => $val) {
if (($pos = array_search($this->peek($len), $val)) !== false) {
$sUnit = $val[$pos];
$peek = $this->peek($len);
if (array_search($this->strtolower($peek), $val) !== false) {
$sUnit = $peek;
$this->consume($len);
break;
}
Expand Down
19 changes: 16 additions & 3 deletions framework/Css_Parser/package.xml
Expand Up @@ -10,9 +10,9 @@
<email>slusarz@horde.org</email>
<active>yes</active>
</lead>
<date>2013-10-15</date>
<date>2013-10-23</date>
<version>
<release>1.0.3</release>
<release>1.0.4</release>
<api>1.0.0</api>
</version>
<stability>
Expand Down Expand Up @@ -185,7 +185,20 @@
<stability>
<release>stable</release>
<api>stable</api></stability>
<date>2013-10-15</date>
<date>2013-10-23</date>
<license uri="http://www.horde.org/licenses/lgpl21">LGPL-2.1</license>
<notes>
* [mms] Merge from upstream - handle keywords/dimensions case-insensitively.
</notes>
</release>
<release>
<version>
<release>1.0.4</release>
<api>1.0.0</api></version>
<stability>
<release>stable</release>
<api>stable</api></stability>
<date>2013-10-23</date>
<license uri="http://www.horde.org/licenses/lgpl21">LGPL-2.1</license>
<notes>
*
Expand Down
5 changes: 4 additions & 1 deletion framework/Group/test/Horde/Group/Sql/Base.php
Expand Up @@ -152,7 +152,10 @@ public static function tearDownAfterClass()
if (self::$migrator) {
self::$migrator->down();
}
self::$db = null;
if (self::$db) {
self::$db->disconnect();
self::$db = null;
}
parent::tearDownAfterClass();
}

Expand Down
5 changes: 4 additions & 1 deletion framework/Prefs/test/Horde/Prefs/Unit/Storage/Sql/Base.php
Expand Up @@ -85,7 +85,10 @@ public static function tearDownAfterClass()
if (self::$migrator) {
self::$migrator->down();
}
self::$db = null;
if (self::$db) {
self::$db->disconnect();
self::$db = null;
}
}

public function setUp()
Expand Down
1 change: 1 addition & 0 deletions framework/Rdo/test/Horde/Rdo/Sql/Base.php
Expand Up @@ -288,6 +288,7 @@ public static function tearDownAfterClass()
$migration->dropTable('test_manytomanya');
$migration->dropTable('test_manytomanyb');
$migration->dropTable('test_manythrough');
self::$db->disconnect();
self::$db = null;
}
}
Expand Down
Expand Up @@ -95,7 +95,10 @@ public static function tearDownAfterClass()
if (self::$migrator) {
self::$migrator->down();
}
self::$db = null;
if (self::$db) {
self::$db->disconnect();
self::$db = null;
}
parent::tearDownAfterClass();
}

Expand Down
1 change: 1 addition & 0 deletions framework/Share/test/Horde/Share/Sql/Base.php
Expand Up @@ -205,6 +205,7 @@ public static function tearDownAfterClass()
$migration->dropTable('test_shares');
$migration->dropTable('test_shares_groups');
$migration->dropTable('test_shares_users');
self::$db->disconnect();
self::$db = null;
}
}
Expand Down
1 change: 1 addition & 0 deletions framework/Share/test/Horde/Share/Sqlng/Base.php
Expand Up @@ -206,6 +206,7 @@ public static function tearDownAfterClass()
$migration->dropTable('test_shares');
$migration->dropTable('test_shares_groups');
$migration->dropTable('test_shares_users');
self::$db->disconnect();
self::$db = null;
}
}
Expand Down
2 changes: 1 addition & 1 deletion framework/Text_Filter/composer.json
Expand Up @@ -22,7 +22,7 @@
}
],
"version": "2.1.5",
"time": "2013-10-09",
"time": "2013-10-24",
"repositories": [
{
"type": "pear",
Expand Down
Expand Up @@ -63,6 +63,13 @@ class Horde_Text_Filter_JavascriptMinify_JsMin
protected $_input;
protected $_inputIndex = 0;
protected $_inputLength;
protected $_keywords = array(
'case',
'else',
'in',
'return',
'typeof'
);
protected $_lookAhead = null;
protected $_output = '';
protected $_x = null;
Expand Down Expand Up @@ -120,7 +127,7 @@ public function minify()

protected function _action($d)
{
switch($d) {
switch ($d) {
case self::ACTION_KEEP_A:
$this->_output .= $this->_a;
if (strspn($this->_y, "\n ") &&
Expand Down Expand Up @@ -153,10 +160,10 @@ protected function _action($d)
}

case self::ACTION_DELETE_A_B:
$oldindex = $this->_inputIndex;
$this->_b = $this->_next();

if (($this->_b === '/') &&
strspn($this->_a, "(,=:[!&|?+-~*/{\n")) {
if (($this->_b === '/') && $this->_isRegexLiteral($oldindex)) {
$this->_output .= $this->_a;
if (strspn($this->_a, '/*')) {
$this->_output .= ' ';
Expand Down Expand Up @@ -243,6 +250,21 @@ protected function _isAlphaNum($c)
($c_ord >= 65 && $c_ord <= 90));
}

protected function _isRegexLiteral($oldindex)
{
if (strspn($this->_a, "(,=:[!&|?+-~*/{\n ")) {
return true;
}

$curr = $oldindex;
while (--$curr >= 0 && $this->_isAlphaNum($this->_input[$curr])) {}

return in_array(
substr($this->_input, $curr + 1, $oldindex - $curr - 1),
$this->_keywords
);
}

protected function _next()
{
$c = $this->_get();
Expand Down

0 comments on commit 07aa99d

Please sign in to comment.