[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

darin darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:44:47 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 518546ec90f79695fea0894948ef20aa2b4ccf8d
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jun 10 17:39:53 2003 +0000

            Reviewed by John.
    
    	- fixed 3285120 -- crash in CSSParser::parseColor (originally seen with Panther Mail while indexing)
    
            * khtml/css/parser.y: Moved DIMEN rule out of unary_term, needed because a term production
            assumes that the values that come out of unary_term are all fValue, not string.
            * khtml/css/parser.cpp: Regenerated.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4513 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 18fad87..917700c 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,13 @@
+2003-06-10  Darin Adler  <darin at apple.com>
+
+        Reviewed by John.
+
+	- fixed 3285120 -- crash in CSSParser::parseColor (originally seen with Panther Mail while indexing)
+
+        * khtml/css/parser.y: Moved DIMEN rule out of unary_term, needed because a term production
+        assumes that the values that come out of unary_term are all fValue, not string.
+        * khtml/css/parser.cpp: Regenerated.
+
 2003-06-10  Vicki Murley  <vicki at apple.com>
 
         Reviewed by john.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 18fad87..917700c 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,13 @@
+2003-06-10  Darin Adler  <darin at apple.com>
+
+        Reviewed by John.
+
+	- fixed 3285120 -- crash in CSSParser::parseColor (originally seen with Panther Mail while indexing)
+
+        * khtml/css/parser.y: Moved DIMEN rule out of unary_term, needed because a term production
+        assumes that the values that come out of unary_term are all fValue, not string.
+        * khtml/css/parser.cpp: Regenerated.
+
 2003-06-10  Vicki Murley  <vicki at apple.com>
 
         Reviewed by john.
diff --git a/WebCore/khtml/css/parser.cpp b/WebCore/khtml/css/parser.cpp
index 33f5032..6caa1ed 100644
--- a/WebCore/khtml/css/parser.cpp
+++ b/WebCore/khtml/css/parser.cpp
@@ -181,7 +181,7 @@ static int cssyylex( YYSTYPE *yylval ) {
 
 
 
-#define	YYFINAL		273
+#define	YYFINAL		275
 #define	YYFLAG		-32768
 #define	YYNTBASE	61
 
@@ -233,10 +233,10 @@ static const short yyprhs[] = {     0,
    246,   248,   251,   255,   262,   264,   267,   269,   273,   275,
    279,   284,   288,   294,   299,   304,   311,   317,   320,   327,
    329,   333,   336,   339,   340,   342,   346,   349,   352,   355,
-   356,   358,   361,   364,   367,   370,   373,   375,   378,   380,
-   383,   386,   389,   392,   395,   398,   401,   404,   407,   410,
-   413,   416,   419,   422,   425,   428,   431,   434,   437,   443,
-   447,   450,   454,   458,   461,   467,   471,   473
+   356,   358,   361,   364,   367,   370,   374,   377,   380,   382,
+   385,   387,   390,   393,   396,   399,   402,   405,   408,   411,
+   414,   417,   420,   423,   426,   429,   432,   435,   438,   441,
+   447,   451,   454,   458,   462,   465,   471,   475,   477
 };
 
 static const short yyrhs[] = {    67,
@@ -276,18 +276,18 @@ static const short yyrhs[] = {    67,
     65,     0,    11,    65,     0,    24,    65,     0,     0,   102,
      0,   100,   101,   102,     0,   100,     1,     0,    58,    65,
      0,    50,    65,     0,     0,   103,     0,    81,   103,     0,
-    10,    65,     0,    11,    65,     0,    44,    65,     0,    46,
-    65,     0,   105,     0,    59,    65,     0,   104,     0,    43,
-    65,     0,    42,    65,     0,    28,    65,     0,    29,    65,
-     0,    30,    65,     0,    31,    65,     0,    32,    65,     0,
-    33,    65,     0,    34,    65,     0,    35,    65,     0,    36,
-    65,     0,    37,    65,     0,    38,    65,     0,    39,    65,
-     0,    40,    65,     0,    26,    65,     0,    25,    65,     0,
-    27,    65,     0,    41,    65,     0,    45,    65,   100,    57,
-    65,     0,    45,    65,     1,     0,    12,    65,     0,    60,
-     1,   108,     0,    60,     1,    49,     0,     1,   108,     0,
-    47,     1,   109,     1,    48,     0,    47,     1,    48,     0,
-   108,     0,   109,     1,   108,     0
+    10,    65,     0,    11,    65,     0,    41,    65,     0,    81,
+    41,    65,     0,    44,    65,     0,    46,    65,     0,   105,
+     0,    59,    65,     0,   104,     0,    43,    65,     0,    42,
+    65,     0,    28,    65,     0,    29,    65,     0,    30,    65,
+     0,    31,    65,     0,    32,    65,     0,    33,    65,     0,
+    34,    65,     0,    35,    65,     0,    36,    65,     0,    37,
+    65,     0,    38,    65,     0,    39,    65,     0,    40,    65,
+     0,    26,    65,     0,    25,    65,     0,    27,    65,     0,
+    45,    65,   100,    57,    65,     0,    45,    65,     1,     0,
+    12,    65,     0,    60,     1,   108,     0,    60,     1,    49,
+     0,     1,   108,     0,    47,     1,   109,     1,    48,     0,
+    47,     1,    48,     0,   108,     0,   109,     1,   108,     0
 };
 
 #endif
@@ -305,10 +305,10 @@ static const short yyrline[] = { 0,
    693,   696,   702,   708,   716,   720,   725,   728,   734,   742,
    746,   749,   755,   761,   766,   772,   780,   803,   807,   815,
    820,   827,   834,   836,   839,   844,   857,   863,   867,   870,
-   875,   877,   878,   879,   885,   886,   887,   888,   890,   895,
-   897,   898,   899,   900,   901,   902,   903,   904,   905,   906,
-   907,   908,   909,   910,   911,   912,   913,   914,   918,   926,
-   938,   945,   952,   960,   986,   988,   991,   993
+   875,   877,   878,   879,   886,   887,   888,   889,   890,   891,
+   893,   898,   900,   901,   902,   903,   904,   905,   906,   907,
+   908,   909,   910,   911,   912,   913,   914,   915,   916,   920,
+   928,   940,   947,   954,   962,   988,   990,   993,   995
 };
 #endif
 
@@ -345,10 +345,10 @@ static const short yyr1[] = {     0,
     93,    94,    94,    94,    95,    95,    95,    95,    95,    96,
     96,    96,    96,    96,    96,    96,    97,    97,    97,    97,
     97,    98,    99,    99,   100,   100,   100,   101,   101,   101,
-   102,   102,   102,   102,   102,   102,   102,   102,   102,   103,
-   103,   103,   103,   103,   103,   103,   103,   103,   103,   103,
-   103,   103,   103,   103,   103,   103,   103,   103,   104,   104,
-   105,   106,   106,   107,   108,   108,   109,   109
+   102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
+   102,   103,   103,   103,   103,   103,   103,   103,   103,   103,
+   103,   103,   103,   103,   103,   103,   103,   103,   103,   104,
+   104,   105,   106,   106,   107,   108,   108,   109,   109
 };
 
 static const short yyr2[] = {     0,
@@ -363,10 +363,10 @@ static const short yyr2[] = {     0,
      1,     2,     3,     6,     1,     2,     1,     3,     1,     3,
      4,     3,     5,     4,     4,     6,     5,     2,     6,     1,
      3,     2,     2,     0,     1,     3,     2,     2,     2,     0,
-     1,     2,     2,     2,     2,     2,     1,     2,     1,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     5,     3,
-     2,     3,     3,     2,     5,     3,     1,     3
+     1,     2,     2,     2,     2,     3,     2,     2,     1,     2,
+     1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     5,
+     3,     2,     3,     3,     2,     5,     3,     1,     3
 };
 
 static const short yydefact[] = {    13,
@@ -378,215 +378,215 @@ static const short yydefact[] = {    13,
      0,    85,     0,   100,     8,     8,     8,     8,     8,     8,
      8,     8,     8,     8,     8,     8,     8,     8,     8,     8,
      8,     8,     8,     8,     8,     8,     8,     8,     8,    50,
-    49,     8,     0,     0,   105,   111,   119,   117,     0,     0,
-    10,   146,   147,     0,    14,    82,     0,     8,    70,     0,
+    49,     8,     0,     0,   105,   111,   121,   119,     0,     0,
+    10,   147,   148,     0,    14,    82,     0,     8,    70,     0,
      0,    54,     8,     8,    57,     8,     8,     0,    58,     0,
     65,    60,    64,     8,     0,   102,   103,     6,     0,    86,
-     8,     0,    98,     8,   113,   114,   141,   136,   135,   137,
-   122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
-   132,   133,   134,   138,   121,   120,   115,     0,   116,   118,
-   112,   107,     7,     8,     8,     0,     0,     0,     0,     0,
-     8,     0,     0,    10,    22,    23,    24,    21,    26,    25,
-    18,     0,    83,     0,     8,     0,     5,     0,     0,    46,
-    47,    56,    59,    92,    88,     8,     0,     8,    90,     0,
-     8,     0,   140,     0,   109,   108,   106,    29,    28,    30,
-    31,     8,   144,     0,    34,     0,     0,    20,   145,   148,
-     8,    71,    75,    76,    77,    78,    79,    72,    74,     8,
-     0,     0,     8,    95,     0,    94,    91,     0,     0,     8,
-    34,    43,    42,     8,     0,    35,    45,    44,   143,   142,
-     0,     0,    51,    93,     8,     0,    97,   139,     0,     0,
-    41,    37,     8,     8,    84,    81,    80,     8,    96,    99,
-    27,    39,     0,     0,     0,    36,    73,    38,     8,    40,
-     0,     0,     0
+     8,     0,    98,     8,   113,   114,   142,   138,   137,   139,
+   124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
+   134,   135,   136,   115,   123,   122,   117,     0,   118,   120,
+     8,   112,   107,     7,     8,     8,     0,     0,     0,     0,
+     0,     8,     0,     0,    10,    22,    23,    24,    21,    26,
+    25,    18,     0,    83,     0,     8,     0,     5,     0,     0,
+    46,    47,    56,    59,    92,    88,     8,     0,     8,    90,
+     0,     8,     0,   141,     0,   116,   109,   108,   106,    29,
+    28,    30,    31,     8,   145,     0,    34,     0,     0,    20,
+   146,   149,     8,    71,    75,    76,    77,    78,    79,    72,
+    74,     8,     0,     0,     8,    95,     0,    94,    91,     0,
+     0,     8,    34,    43,    42,     8,     0,    35,    45,    44,
+   144,   143,     0,     0,    51,    93,     8,     0,    97,   140,
+     0,     0,    41,    37,     8,     8,    84,    81,    80,     8,
+    96,    99,    27,    39,     0,     0,     0,    36,    73,    38,
+     8,    40,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   271,
-     5,     6,     7,    10,    17,     8,    28,    90,   164,    91,
-   202,   249,   235,   165,   265,   236,   166,   167,   108,    83,
-    37,    38,    39,    40,    41,    42,    43,    44,   176,    45,
-   220,   258,    46,    50,    51,    52,    53,    54,    84,   156,
-    85,    86,    87,    88,   169,   170,    93,    94
+static const short yydefgoto[] = {   273,
+     5,     6,     7,    10,    17,     8,    28,    90,   165,    91,
+   204,   251,   237,   166,   267,   238,   167,   168,   108,    83,
+    37,    38,    39,    40,    41,    42,    43,    44,   177,    45,
+   222,   260,    46,    50,    51,    52,    53,    54,    84,   157,
+    85,    86,    87,    88,   170,   171,    93,    94
 };
 
-static const short yypact[] = {   187,
-    17,     0,    43,    56,-32768,-32768,-32768,-32768,   -28,   119,
--32768,-32768,-32768,   101,   101,   101,    21,   116,-32768,-32768,
--32768,-32768,   131,   210,   492,-32768,-32768,   102,   -13,    84,
--32768,-32768,    95,   110,-32768,-32768,-32768,    44,   176,-32768,
-   229,   541,-32768,-32768,-32768,-32768,   105,-32768,-32768,    93,
-    99,   108,    13,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+static const short yypact[] = {   223,
+    13,   -28,   -18,    39,-32768,-32768,-32768,-32768,     0,    15,
+-32768,-32768,-32768,    87,    87,    87,    31,    99,-32768,-32768,
+-32768,-32768,   129,   540,   494,-32768,-32768,   118,   159,    84,
+-32768,-32768,   222,    92,-32768,-32768,-32768,    44,   178,-32768,
+   247,   162,-32768,-32768,-32768,-32768,    98,-32768,-32768,    69,
+   107,   119,    11,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   540,   346,-32768,-32768,-32768,-32768,   193,   113,
--32768,-32768,-32768,   164,-32768,-32768,   158,-32768,-32768,    12,
-     1,-32768,-32768,-32768,-32768,-32768,-32768,   148,   101,   541,
--32768,   101,-32768,-32768,   181,   101,   101,-32768,   146,   125,
--32768,    32,-32768,-32768,   101,   101,   101,   101,   101,   101,
-   101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
-   101,   101,   101,   101,   101,   101,   101,   448,   101,   101,
--32768,-32768,-32768,-32768,-32768,   594,   167,   161,   145,   198,
--32768,   211,   216,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-    21,    38,-32768,   131,-32768,    33,-32768,   210,   131,   101,
-   101,-32768,   101,   101,   173,-32768,   223,-32768,   101,   145,
--32768,   295,-32768,   397,   101,   101,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   184,   104,   189,   203,    21,-32768,-32768,
--32768,   101,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   156,   549,-32768,   101,   213,   101,   101,   594,   244,-32768,
-   109,-32768,-32768,-32768,    45,-32768,-32768,-32768,-32768,-32768,
-    19,   165,-32768,   101,-32768,   244,-32768,   101,   183,    47,
-   101,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   101,-32768,
--32768,   101,   104,    25,   124,-32768,-32768,-32768,-32768,   101,
-   235,   239,-32768
+-32768,-32768,   608,   348,-32768,-32768,-32768,-32768,   194,   110,
+-32768,-32768,-32768,   125,-32768,-32768,   109,-32768,-32768,   101,
+    82,-32768,-32768,-32768,-32768,-32768,-32768,   147,    87,   162,
+-32768,    87,-32768,-32768,   148,    87,    87,-32768,   139,   120,
+-32768,    32,-32768,-32768,    87,    87,    87,    87,    87,    87,
+    87,    87,    87,    87,    87,    87,    87,    87,    87,    87,
+    87,    87,    87,    87,    87,    87,    87,   450,    87,    87,
+-32768,-32768,-32768,-32768,-32768,-32768,   573,   175,   195,   149,
+   193,-32768,   214,   217,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,    31,   163,-32768,   129,-32768,    33,-32768,   540,   129,
+    87,    87,-32768,    87,    87,   187,-32768,   225,-32768,    87,
+   149,-32768,   297,-32768,   399,    87,    87,    87,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,   205,   103,   216,   254,    31,
+-32768,-32768,-32768,    87,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   100,   543,-32768,    87,   263,    87,    87,   573,
+   246,-32768,   104,-32768,-32768,-32768,    45,-32768,-32768,-32768,
+-32768,-32768,    18,    17,-32768,    87,-32768,   246,-32768,    87,
+   174,    47,    87,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+    87,-32768,-32768,    87,   103,    23,   124,-32768,-32768,-32768,
+-32768,    87,   237,   240,-32768
 };
 
 static const short yypgoto[] = {-32768,
 -32768,-32768,-32768,    -5,   -82,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    15,-32768,-32768,   -16,-32768,-32768,-32768,-32768,
-   -85,-32768,    72,   -95,-32768,   220,   -32,-32768,-32768,-32768,
--32768,-32768,-32768,    85,-32768,   214,-32768,  -217,  -117,-32768,
-   111,   217,-32768,-32768,-32768,-32768,    -6,   -36
+-32768,-32768,     8,-32768,-32768,   -17,-32768,-32768,-32768,-32768,
+   -86,-32768,    73,   -95,-32768,   208,   -31,-32768,-32768,-32768,
+-32768,-32768,-32768,    85,-32768,   218,-32768,  -226,  -117,-32768,
+   111,   219,-32768,-32768,-32768,-32768,    -6,   -37
 };
 
 
-#define	YYLAST		653
+#define	YYLAST		651
 
 
 static const short yytable[] = {    14,
-    15,    16,    20,    21,   168,    23,    24,    25,   171,   113,
-   115,   247,   182,   123,    21,   122,    30,     9,    18,    -8,
-    19,    21,   175,    26,    27,   124,    -8,    21,   260,   100,
-   194,   101,   190,    18,    92,   109,   112,   213,   214,   215,
-   216,   217,   116,   117,   102,   252,    11,   252,   177,   125,
+    15,    16,    20,   169,   249,    23,    24,    25,   172,   115,
+   113,   123,   183,     9,   122,    -8,    30,    21,    11,    21,
+    21,   262,    -8,   124,    22,    21,   258,   259,    12,   100,
+   195,   101,   191,    26,    27,   109,   112,   215,   216,   217,
+   218,   219,   116,   117,   102,   254,    18,   254,    19,   125,
    126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
    136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-   146,   147,   148,   149,   229,   255,   150,   113,   211,   267,
-   191,   208,   187,   158,    18,   209,    21,   218,   219,    12,
-   103,   253,   174,   104,   254,   -33,   254,   178,   179,   119,
-   180,   181,    13,    21,   183,    96,    21,    97,   184,    48,
-   246,    21,    -1,   159,   234,   189,    29,    89,   192,   234,
-    99,    21,    49,    31,    32,    33,    34,    35,    22,   160,
-   161,   162,    95,    21,    31,    32,    33,    34,    35,    98,
-   118,    31,    32,    33,    34,    35,   -87,  -104,   195,   196,
-   199,    18,   203,   114,    18,   205,   121,   -32,    31,    32,
-    33,    34,    35,    21,   172,   210,    36,    21,   173,   212,
-   200,   268,   163,   188,   256,   257,   105,    36,   210,   269,
-   224,   185,   226,   210,    36,   227,   -48,   -48,   -48,   -48,
-   -48,    18,    18,   157,   186,    -8,   231,   233,   204,   238,
-   240,    36,    -8,   243,   201,   241,     1,     2,     3,     4,
-    47,   206,    21,    18,   242,   198,   207,   244,   210,    18,
-    48,   223,   -52,   225,   248,   -52,   106,   107,   251,   -48,
-    18,   261,   232,    49,   272,    18,    -8,   237,   273,   259,
-    32,    33,    34,    35,   152,   250,   266,   262,   263,    18,
-   222,   239,   264,  -110,  -110,  -110,  -104,  -104,  -104,    18,
-   110,   245,   221,   270,   120,     0,   197,    49,  -110,  -110,
+   146,   147,   148,   149,   257,   231,   150,   269,   113,   213,
+   192,   188,   210,   159,    21,    13,    21,   220,   221,    21,
+   103,   255,   175,   104,   256,   -33,   256,   179,   180,    29,
+   181,   182,    99,    21,   184,    21,    21,   119,   185,    -1,
+   160,   176,   248,   236,   236,   190,   118,    48,   193,   174,
+    31,    32,    33,    34,    35,   173,   161,   162,   163,   178,
+    49,    21,    95,    89,    31,    32,    33,    34,    35,    31,
+    32,    33,    34,    35,    18,   196,   114,   245,   186,   197,
+   198,   201,   -32,   205,   -87,  -104,   207,    31,    32,    33,
+    34,    35,   111,    36,    -8,    18,   212,   121,   189,   164,
+   214,   270,    -8,    32,    33,    34,    35,    36,   105,   212,
+   271,   226,    36,   228,   212,    18,   229,   187,   -48,   -48,
+   -48,   -48,   -48,   206,   158,    18,    -8,    21,   233,   235,
+    36,   240,   242,    -8,   202,    18,    92,   243,    -8,    18,
+   211,    -8,    -8,    -8,   208,    -8,   244,   209,    -8,   246,
+   212,    18,   263,   200,   -52,   227,   250,   -52,   106,   107,
+   253,   -48,    96,    18,    97,   225,   274,    -8,   203,   275,
+   252,   261,     1,     2,     3,     4,   153,   268,   110,   264,
+   265,    18,   224,   234,   266,  -110,  -110,  -110,    32,    33,
+    34,    35,    18,   223,   239,   272,    98,   199,   120,    49,
   -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,
   -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,
-  -104,  -104,  -104,   154,  -110,   228,  -110,    21,     0,   151,
-     0,   155,  -110,     0,    55,    56,    57,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    58,
-    59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-    69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-    79,  -101,  -101,  -101,     0,    80,   152,    81,     0,     0,
-     0,     0,     0,    82,     0,  -110,  -110,  -110,     0,     0,
+  -110,  -110,  -104,  -104,  -104,   155,  -110,   230,  -110,    21,
+    18,   152,   241,   156,  -110,     0,    55,    56,    57,    18,
+     0,   247,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+    77,    78,    79,  -101,  -101,  -101,     0,    80,   153,    81,
+     0,     0,     0,     0,     0,    82,     0,  -110,  -110,  -110,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,
   -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,
+  -110,  -110,  -110,  -110,     0,   154,     0,   155,  -110,   153,
+  -110,     0,     0,     0,     0,   156,  -110,     0,  -110,  -110,
+  -110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,  -110,  -110,  -110,  -110,  -110,  -110,  -110,
   -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,
-  -110,  -110,     0,   153,     0,   154,  -110,   152,  -110,     0,
-     0,     0,     0,   155,  -110,     0,  -110,  -110,  -110,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,
-  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,  -110,
-  -110,  -110,  -110,     0,     0,     0,   154,  -110,   193,  -110,
-    21,     0,     0,   230,   155,  -110,     0,    55,    56,    57,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    58,    59,    60,    61,    62,    63,    64,    65,
-    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-    76,    77,    78,    79,    21,     0,     0,     0,    80,     0,
-    81,    55,    56,    57,     0,     0,    82,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    58,    59,    60,    61,
-    62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-    72,    73,    74,    75,    76,    77,    78,    79,     0,     0,
-     0,   111,    80,    -8,    81,     0,     0,     0,     0,   105,
-    82,    -8,    32,    33,    34,    35,     0,     0,     0,   -48,
-   -48,   -48,   -48,   -48,    58,    59,    60,    61,    62,    63,
+  -110,  -110,  -110,  -110,  -110,     0,     0,     0,   155,  -110,
+   194,  -110,    21,     0,     0,   232,   156,  -110,     0,    55,
+    56,    57,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    58,    59,    60,    61,    62,    63,
     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-    74,    75,    76,     0,     0,     0,     0,    -8,     0,     0,
-    -8,    -8,    -8,     0,    -8,   -53,     0,    -8,   -53,   106,
-   107,     0,   -48,    55,    56,    57,     0,     0,     0,     0,
+    74,    75,    76,    77,    78,    79,    21,     0,     0,     0,
+    80,     0,    81,    55,    56,    57,     0,     0,    82,     0,
      0,     0,     0,     0,     0,     0,     0,     0,    58,    59,
     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-     0,     0,     0,     0,    80,     0,    81,     0,     0,     0,
-     0,     0,    82
+    47,     0,    21,   105,    80,     0,    81,     0,     0,     0,
+    48,     0,    82,   -48,   -48,   -48,   -48,   -48,     0,     0,
+     0,     0,     0,    49,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    55,    56,    57,     0,  -104,  -104,  -104,   -53,
+     0,     0,   -53,   106,   107,     0,   -48,    58,    59,    60,
+    61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+    71,    72,    73,    74,    75,    76,    77,    78,    79,     0,
+     0,     0,     0,    80,     0,    81,     0,     0,     0,     0,
+     0,    82,    58,    59,    60,    61,    62,    63,    64,    65,
+    66,    67,    68,    69,    70,    71,    72,    73,   151,    75,
+    76
 };
 
 static const short yycheck[] = {     5,
-     6,     7,     9,     3,    90,    11,    12,    13,    91,    42,
-    47,   229,   108,     1,     3,    52,    22,     1,    47,     3,
-    49,     3,    11,     3,     4,    13,    10,     3,   246,    35,
-   148,    37,     1,    47,    48,    41,    42,     5,     6,     7,
-     8,     9,    48,    49,     1,     1,    47,     1,    48,    55,
+     6,     7,     9,    90,   231,    11,    12,    13,    91,    47,
+    42,     1,   108,     1,    52,     3,    22,     3,    47,     3,
+     3,   248,    10,    13,    10,     3,    10,    11,    47,    35,
+   148,    37,     1,     3,     4,    41,    42,     5,     6,     7,
+     8,     9,    48,    49,     1,     1,    47,     1,    49,    55,
     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
     66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-    76,    77,    78,    79,   192,    57,    82,   110,   174,    55,
-    49,   164,   119,    89,    47,    48,     3,    55,    56,    47,
+    76,    77,    78,    79,    57,   193,    82,    55,   110,   175,
+    49,   119,   165,    89,     3,    47,     3,    55,    56,     3,
     47,    47,    98,    50,    50,    49,    50,   103,   104,     1,
-   106,   107,    47,     3,   110,    11,     3,    13,   114,    11,
-   228,     3,     0,     1,    11,   121,     1,    16,   124,    11,
-    11,     3,    24,    11,    12,    13,    14,    15,    10,    17,
-    18,    19,    49,     3,    11,    12,    13,    14,    15,    45,
-    48,    11,    12,    13,    14,    15,    48,    49,   154,   155,
-   157,    47,   159,    49,    47,   161,    49,    49,    11,    12,
-    13,    14,    15,     3,     1,   172,    54,     3,    11,   175,
-    10,    48,    60,    49,    10,    11,     1,    54,   185,   265,
-   186,     1,   188,   190,    54,   191,    11,    12,    13,    14,
-    15,    47,    47,     1,    49,     3,   202,   204,     1,   206,
-   207,    54,    10,    48,    44,   211,    20,    21,    22,    23,
-     1,     1,     3,    47,   220,    49,     1,   223,   225,    47,
-    11,    49,    47,     1,   230,    50,    51,    52,   234,    54,
-    47,    49,    49,    24,     0,    47,    44,    49,     0,   245,
-    12,    13,    14,    15,     1,   231,   263,   253,   254,    47,
-   179,    49,   258,    10,    11,    12,    47,    48,    49,    47,
-    41,    49,   178,   269,    51,    -1,   156,    24,    25,    26,
-    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,     1,    53,     3,    -1,    83,
-    -1,    58,    59,    -1,    10,    11,    12,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,
-    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    -1,    51,     1,    53,    -1,    -1,
-    -1,    -1,    -1,    59,    -1,    10,    11,    12,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   106,   107,    11,     3,   110,     3,     3,     1,   114,     0,
+     1,    11,   230,    11,    11,   121,    48,    11,   124,    11,
+    11,    12,    13,    14,    15,     1,    17,    18,    19,    48,
+    24,     3,    49,    16,    11,    12,    13,    14,    15,    11,
+    12,    13,    14,    15,    47,   151,    49,    48,     1,   155,
+   156,   158,    49,   160,    48,    49,   162,    11,    12,    13,
+    14,    15,     1,    54,     3,    47,   173,    49,    49,    60,
+   176,    48,    11,    12,    13,    14,    15,    54,     1,   186,
+   267,   187,    54,   189,   191,    47,   192,    49,    11,    12,
+    13,    14,    15,     1,     1,    47,     3,     3,   204,   206,
+    54,   208,   209,    10,    10,    47,    48,   213,    47,    47,
+    48,    50,    51,    52,     1,    54,   222,     1,    57,   225,
+   227,    47,    49,    49,    47,     1,   232,    50,    51,    52,
+   236,    54,    11,    47,    13,    49,     0,    44,    44,     0,
+   233,   247,    20,    21,    22,    23,     1,   265,    41,   255,
+   256,    47,   180,    49,   260,    10,    11,    12,    12,    13,
+    14,    15,    47,   179,    49,   271,    45,   157,    51,    24,
     25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
     35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-    45,    46,    -1,    48,    -1,    50,    51,     1,    53,    -1,
-    -1,    -1,    -1,    58,    59,    -1,    10,    11,    12,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    45,    46,    47,    48,    49,    50,    51,     1,    53,     3,
+    47,    83,    49,    58,    59,    -1,    10,    11,    12,    47,
+    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    25,    26,    27,    28,    29,    30,    31,    32,    33,
     34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-    44,    45,    46,    -1,    -1,    -1,    50,    51,     1,    53,
-     3,    -1,    -1,    57,    58,    59,    -1,    10,    11,    12,
+    44,    45,    46,    47,    48,    49,    -1,    51,     1,    53,
+    -1,    -1,    -1,    -1,    -1,    59,    -1,    10,    11,    12,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    25,    26,    27,    28,    29,    30,    31,    32,
     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-    43,    44,    45,    46,     3,    -1,    -1,    -1,    51,    -1,
-    53,    10,    11,    12,    -1,    -1,    59,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    25,    26,    27,    28,
-    29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-    39,    40,    41,    42,    43,    44,    45,    46,    -1,    -1,
-    -1,     1,    51,     3,    53,    -1,    -1,    -1,    -1,     1,
-    59,    11,    12,    13,    14,    15,    -1,    -1,    -1,    11,
-    12,    13,    14,    15,    25,    26,    27,    28,    29,    30,
+    43,    44,    45,    46,    -1,    48,    -1,    50,    51,     1,
+    53,    -1,    -1,    -1,    -1,    58,    59,    -1,    10,    11,
+    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    25,    26,    27,    28,    29,    30,    31,
+    32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+    42,    43,    44,    45,    46,    -1,    -1,    -1,    50,    51,
+     1,    53,     3,    -1,    -1,    57,    58,    59,    -1,    10,
+    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    25,    26,    27,    28,    29,    30,
     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-    41,    42,    43,    -1,    -1,    -1,    -1,    47,    -1,    -1,
-    50,    51,    52,    -1,    54,    47,    -1,    57,    50,    51,
-    52,    -1,    54,    10,    11,    12,    -1,    -1,    -1,    -1,
+    41,    42,    43,    44,    45,    46,     3,    -1,    -1,    -1,
+    51,    -1,    53,    10,    11,    12,    -1,    -1,    59,    -1,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    26,
     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-    -1,    -1,    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,
-    -1,    -1,    59
+     1,    -1,     3,     1,    51,    -1,    53,    -1,    -1,    -1,
+    11,    -1,    59,    11,    12,    13,    14,    15,    -1,    -1,
+    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    10,    11,    12,    -1,    47,    48,    49,    47,
+    -1,    -1,    50,    51,    52,    -1,    54,    25,    26,    27,
+    28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+    38,    39,    40,    41,    42,    43,    44,    45,    46,    -1,
+    -1,    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,    -1,
+    -1,    59,    25,    26,    27,    28,    29,    30,    31,    32,
+    33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+    43
 };
 #define YYPURE 1
 
@@ -1872,105 +1872,109 @@ case 114:
   ;
     break;}
 case 115:
-#line 885 "parser.y"
-{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_URI; ;
+#line 886 "parser.y"
+{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
     break;}
 case 116:
-#line 886 "parser.y"
-{ yyval.value.id = 0; yyval.value.iValue = 0; yyval.value.unit = CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ ;
+#line 887 "parser.y"
+{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
     break;}
 case 117:
-#line 887 "parser.y"
-{ yyval.value.id = 0; yyval.value.string = yyvsp[0].string; yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
+#line 888 "parser.y"
+{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_URI; ;
     break;}
 case 118:
-#line 888 "parser.y"
-{ yyval.value.id = 0; yyval.value.string = ParseString(); yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
+#line 889 "parser.y"
+{ yyval.value.id = 0; yyval.value.iValue = 0; yyval.value.unit = CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ ;
     break;}
 case 119:
 #line 890 "parser.y"
-{
-      yyval.value = yyvsp[0].value;
-  ;
+{ yyval.value.id = 0; yyval.value.string = yyvsp[0].string; yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
     break;}
 case 120:
-#line 896 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_NUMBER; ;
+#line 891 "parser.y"
+{ yyval.value.id = 0; yyval.value.string = ParseString(); yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
     break;}
 case 121:
-#line 897 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;
+#line 893 "parser.y"
+{
+      yyval.value = yyvsp[0].value;
+  ;
     break;}
 case 122:
-#line 898 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PX; ;
+#line 899 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_NUMBER; ;
     break;}
 case 123:
-#line 899 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_CM; ;
+#line 900 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;
     break;}
 case 124:
-#line 900 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MM; ;
+#line 901 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PX; ;
     break;}
 case 125:
-#line 901 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_IN; ;
+#line 902 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_CM; ;
     break;}
 case 126:
-#line 902 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PT; ;
+#line 903 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MM; ;
     break;}
 case 127:
-#line 903 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PC; ;
+#line 904 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_IN; ;
     break;}
 case 128:
-#line 904 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_DEG; ;
+#line 905 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PT; ;
     break;}
 case 129:
-#line 905 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_RAD; ;
+#line 906 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PC; ;
     break;}
 case 130:
-#line 906 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_GRAD; ;
+#line 907 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_DEG; ;
     break;}
 case 131:
-#line 907 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MS; ;
+#line 908 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_RAD; ;
     break;}
 case 132:
-#line 908 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_S; ;
+#line 909 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_GRAD; ;
     break;}
 case 133:
-#line 909 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_HZ; ;
+#line 910 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MS; ;
     break;}
 case 134:
-#line 910 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_KHZ; ;
+#line 911 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_S; ;
     break;}
 case 135:
-#line 911 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EMS; ;
+#line 912 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_HZ; ;
     break;}
 case 136:
-#line 912 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = Value::Q_EMS; ;
+#line 913 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_KHZ; ;
     break;}
 case 137:
-#line 913 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EXS; ;
+#line 914 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EMS; ;
     break;}
 case 138:
-#line 914 "parser.y"
-{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
+#line 915 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = Value::Q_EMS; ;
     break;}
 case 139:
-#line 919 "parser.y"
+#line 916 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EXS; ;
+    break;}
+case 140:
+#line 921 "parser.y"
 {
       Function *f = new Function;
       f->name = yyvsp[-4].string;
@@ -1980,20 +1984,20 @@ case 139:
       yyval.value.function = f;
   ;
     break;}
-case 140:
-#line 927 "parser.y"
+case 141:
+#line 929 "parser.y"
 {
       yyval.value.id = 0;
       yyval.value.unit = Value::Function;
       yyval.value.function = 0;
   ;
     break;}
-case 141:
-#line 939 "parser.y"
+case 142:
+#line 941 "parser.y"
 { yyval.string = yyvsp[-1].string; ;
     break;}
-case 142:
-#line 946 "parser.y"
+case 143:
+#line 948 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -2001,8 +2005,8 @@ case 142:
 #endif
     ;
     break;}
-case 143:
-#line 952 "parser.y"
+case 144:
+#line 954 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -2010,8 +2014,8 @@ case 143:
 #endif
     ;
     break;}
-case 144:
-#line 961 "parser.y"
+case 145:
+#line 963 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -2241,6 +2245,6 @@ yyerrhandle:
     }
   return 1;
 }
-#line 996 "parser.y"
+#line 998 "parser.y"
 
 
diff --git a/WebCore/khtml/css/parser.y b/WebCore/khtml/css/parser.y
index d715291..c70518a 100644
--- a/WebCore/khtml/css/parser.y
+++ b/WebCore/khtml/css/parser.y
@@ -874,7 +874,7 @@ operator:
 
 term:
   unary_term { $$ = $1; }
-   | unary_operator unary_term { $$ = $2; $$.fValue *= $1; }
+  | unary_operator unary_term { $$ = $2; $$.fValue *= $1; }
   | STRING maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_STRING; }
   | IDENT maybe_space {
       QString str = qString( $1 );
@@ -882,10 +882,13 @@ term:
       $$.unit = CSSPrimitiveValue::CSS_IDENT;
       $$.string = $1;
   }
+  /* We might need to actually parse the number from a dimension, but we can't just put something that uses $$.string into unary_term. */
+  | DIMEN maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_DIMENSION }
+  | unary_operator DIMEN maybe_space { $$.id = 0; $$.string = $2; $$.unit = CSSPrimitiveValue::CSS_DIMENSION }
   | URI maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_URI; }
   | UNICODERANGE maybe_space { $$.id = 0; $$.iValue = 0; $$.unit = CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ }
   | hexcolor { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_RGBCOLOR; }
-| '#' maybe_space { $$.id = 0; $$.string = ParseString(); $$.unit = CSSPrimitiveValue::CSS_RGBCOLOR; } /* Handle error case: "color: #;" */
+  | '#' maybe_space { $$.id = 0; $$.string = ParseString(); $$.unit = CSSPrimitiveValue::CSS_RGBCOLOR; } /* Handle error case: "color: #;" */
 /* ### according to the specs a function can have a unary_operator in front. I know no case where this makes sense */
   | function {
       $$ = $1;
@@ -911,7 +914,6 @@ unary_term:
   | EMS maybe_space { $$.id = 0; $$.fValue = $1; $$.unit = CSSPrimitiveValue::CSS_EMS; }
   | QEMS maybe_space { $$.id = 0; $$.fValue = $1; $$.unit = Value::Q_EMS; }
   | EXS maybe_space { $$.id = 0; $$.fValue = $1; $$.unit = CSSPrimitiveValue::CSS_EXS; }
-  | DIMEN maybe_space { $$.id = 0; $$.string = $1; $$.unit = CSSPrimitiveValue::CSS_DIMENSION }
     ;
 
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list