@@ -145,7 +145,7 @@ private function parseCharacter($bIsForIdentifier) {
145
145
if (preg_match ('/[0-9a-fA-F]/Su ' , $ this ->peek ()) === 0 ) {
146
146
return $ this ->consume (1 );
147
147
}
148
- $ sUnicode = $ this ->consumeExpression ('/[0-9a-fA-F]+ /u ' );
148
+ $ sUnicode = $ this ->consumeExpression ('/^ [0-9a-fA-F]{1,6} /u ' );
149
149
if (mb_strlen ($ sUnicode , $ this ->sCharset ) < 6 ) {
150
150
//Consume whitespace after incomplete unicode escape
151
151
if (preg_match ('/ \\s/isSu ' , $ this ->peek ())) {
@@ -156,14 +156,13 @@ private function parseCharacter($bIsForIdentifier) {
156
156
}
157
157
}
158
158
}
159
- $ sUtf16 = '' ;
160
- if ((strlen ($ sUnicode ) % 2 ) === 1 ) {
161
- $ sUnicode = "0 $ sUnicode " ;
159
+ $ iUnicode = intval ($ sUnicode , 16 );
160
+ $ sUtf32 = "" ;
161
+ for ($ i =0 ;$ i <4 ;$ i ++) {
162
+ $ sUtf32 .= chr ($ iUnicode & 0xff );
163
+ $ iUnicode = $ iUnicode >> 8 ;
162
164
}
163
- for ($ i =0 ;$ i <strlen ($ sUnicode );$ i +=2 ) {
164
- $ sUtf16 .= chr (intval ($ sUnicode [$ i ].$ sUnicode [$ i +1 ]));
165
- }
166
- return iconv ('utf-16 ' , $ this ->sCharset , $ sUtf16 );
165
+ return iconv ('utf-32le ' , $ this ->sCharset , $ sUtf32 );
167
166
}
168
167
if ($ bIsForIdentifier ) {
169
168
if (preg_match ('/[a-zA-Z0-9]|-|_/u ' , $ this ->peek ()) === 1 ) {
@@ -363,10 +362,8 @@ private function consume($mValue = 1) {
363
362
364
363
private function consumeExpression ($ mExpression ) {
365
364
$ aMatches ;
366
- if (preg_match ($ mExpression , $ this ->inputLeft (), $ aMatches ) === 1 ) {
367
- if ($ aMatches [0 ][1 ] === $ this ->iCurrentPosition ) {
368
- return $ this ->consume ($ aMatches [0 ][0 ]);
369
- }
365
+ if (preg_match ($ mExpression , $ this ->inputLeft (), $ aMatches , PREG_OFFSET_CAPTURE ) === 1 ) {
366
+ return $ this ->consume ($ aMatches [0 ][0 ]);
370
367
}
371
368
throw new Exception ("Expected pattern $ mExpression not found, got: {$ this ->peek (5 )}" );
372
369
}
@@ -695,11 +692,11 @@ public function getValues() {
695
692
}
696
693
697
694
public function setIsImportant ($ bIsImportant ) {
698
- $ this ->bIsImportant = $ bIsImportant ;
695
+ $ this ->bIsImportant = $ bIsImportant ;
699
696
}
700
697
701
698
public function getIsImportant () {
702
- return $ this ->bIsImportant ;
699
+ return $ this ->bIsImportant ;
703
700
}
704
701
public function __toString () {
705
702
$ sResult = "{$ this ->sRule }: " ;
@@ -730,19 +727,19 @@ public function __construct($fSize, $sUnit = null) {
730
727
}
731
728
732
729
public function setUnit ($ sUnit ) {
733
- $ this ->sUnit = $ sUnit ;
730
+ $ this ->sUnit = $ sUnit ;
734
731
}
735
732
736
733
public function getUnit () {
737
- return $ this ->sUnit ;
734
+ return $ this ->sUnit ;
738
735
}
739
736
740
737
public function setSize ($ fSize ) {
741
- $ this ->fSize = floatval ($ fSize );
738
+ $ this ->fSize = floatval ($ fSize );
742
739
}
743
740
744
741
public function getSize () {
745
- return $ this ->fSize ;
742
+ return $ this ->fSize ;
746
743
}
747
744
748
745
public function isRelative () {
@@ -768,11 +765,11 @@ public function __construct($aColor) {
768
765
}
769
766
770
767
public function setColor ($ aColor ) {
771
- $ this ->aColor = $ aColor ;
768
+ $ this ->aColor = $ aColor ;
772
769
}
773
770
774
771
public function getColor () {
775
- return $ this ->aColor ;
772
+ return $ this ->aColor ;
776
773
}
777
774
778
775
public function getColorDescription () {
@@ -792,15 +789,17 @@ public function __construct($sString) {
792
789
}
793
790
794
791
public function setString ($ sString ) {
795
- $ this ->sString = $ sString ;
792
+ $ this ->sString = $ sString ;
796
793
}
797
794
798
795
public function getString () {
799
- return $ this ->sString ;
796
+ return $ this ->sString ;
800
797
}
801
798
802
799
public function __toString () {
803
- return '" ' .addslashes ($ this ->sString ).'" ' ;
800
+ $ sString = addslashes ($ this ->sString );
801
+ $ sString = str_replace ("\n" , '\A ' , $ sString );
802
+ return '" ' .$ sString .'" ' ;
804
803
}
805
804
}
806
805
@@ -812,11 +811,11 @@ public function __construct(CSSString $oURL) {
812
811
}
813
812
814
813
public function setURL (CSSString $ oURL ) {
815
- $ this ->oURL = $ oURL ;
814
+ $ this ->oURL = $ oURL ;
816
815
}
817
816
818
817
public function getURL () {
819
- return $ this ->oURL ;
818
+ return $ this ->oURL ;
820
819
}
821
820
822
821
public function __toString () {
0 commit comments