From 605dc431b1ab70514c67c9d131652c01ec272eca Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Wed, 23 Oct 2013 14:12:39 -0600 Subject: [PATCH] [mms] Merge from upstream - handle keywords/dimensions case-insensitively. --- .../Css_Parser/lib/Sabberworm/CSS/Parser.php | 28 +++++++++++-------- framework/Css_Parser/package.xml | 4 +-- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/framework/Css_Parser/lib/Sabberworm/CSS/Parser.php b/framework/Css_Parser/lib/Sabberworm/CSS/Parser.php index e5d97fe6fe7..443496f799e 100644 --- a/framework/Css_Parser/lib/Sabberworm/CSS/Parser.php +++ b/framework/Css_Parser/lib/Sabberworm/CSS/Parser.php @@ -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) { @@ -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; @@ -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; } diff --git a/framework/Css_Parser/package.xml b/framework/Css_Parser/package.xml index 8483f2829bc..dea276a5319 100644 --- a/framework/Css_Parser/package.xml +++ b/framework/Css_Parser/package.xml @@ -21,7 +21,7 @@ LGPL-2.1 -* +* [mms] Merge from upstream - handle keywords/dimensions case-insensitively. @@ -188,7 +188,7 @@ 2013-10-15 LGPL-2.1 -* +* [mms] Merge from upstream - handle keywords/dimensions case-insensitively.