[gtk/wip/otte/css: 63/66] testsuite: Check errors not just for line, but for full range



commit d3bfbcf6002c3a8cad7e40008657691e15280a54
Author: Benjamin Otte <otte redhat com>
Date:   Thu Apr 11 04:33:08 2019 +0200

    testsuite: Check errors not just for line, but for full range
    
    Instead of just checking that the line of the error message is correct,
    assert that start and end position are on the correct character offset.
    
    Also fix all the tests to conform to this.

 testsuite/css/parser/animation-crash-3.12.errors   |   2 +-
 testsuite/css/parser/at-invalid-01.errors          |   2 +-
 testsuite/css/parser/at-invalid-02.errors          |   2 +-
 testsuite/css/parser/at-invalid-03.errors          |   4 +-
 testsuite/css/parser/at-invalid-04.errors          |   4 +-
 testsuite/css/parser/at-invalid-05.errors          |   4 +-
 testsuite/css/parser/at-invalid-06.errors          |   2 +-
 testsuite/css/parser/at-invalid-07.errors          |   2 +-
 testsuite/css/parser/at-invalid-08.errors          |   2 +-
 testsuite/css/parser/at-invalid-09.errors          |   2 +-
 testsuite/css/parser/at-invalid-10.errors          |   2 +-
 testsuite/css/parser/at-invalid-11.errors          |   2 +-
 testsuite/css/parser/at-invalid-12.errors          |   2 +-
 testsuite/css/parser/at-invalid-13.errors          |   2 +-
 testsuite/css/parser/at-invalid-14.errors          |   2 +-
 testsuite/css/parser/at-invalid-15.errors          |   2 +-
 testsuite/css/parser/at-invalid-16.errors          |   2 +-
 testsuite/css/parser/at-invalid-17.errors          |   2 +-
 testsuite/css/parser/at-invalid-18.errors          |   2 +-
 testsuite/css/parser/at-invalid-19.errors          |   2 +-
 testsuite/css/parser/at-invalid-20.errors          |   2 +-
 testsuite/css/parser/at-invalid-21.errors          |   4 +-
 testsuite/css/parser/at-invalid-22.css             |   1 +
 testsuite/css/parser/at-invalid-22.errors          |   1 +
 testsuite/css/parser/at-invalid-22.ref.css         |   0
 testsuite/css/parser/at-valid-11.css               |   2 +-
 testsuite/css/parser/at-valid-16.css               |   2 +-
 .../css/parser/background-position-errors.errors   |   2 +-
 testsuite/css/parser/background-position.errors    |  26 +-
 testsuite/css/parser/background-position.ref.css   |   2 +
 testsuite/css/parser/border-infloop-3.12.errors    |   2 +-
 .../css/parser/border-radius-shorthand.errors      |  26 +-
 testsuite/css/parser/border.errors                 |  16 +-
 testsuite/css/parser/calc-errors.css               |  10 +-
 testsuite/css/parser/calc-errors.errors            |  38 +--
 testsuite/css/parser/calc-errors.ref.css           |   6 +-
 testsuite/css/parser/calc.css                      |   4 +
 testsuite/css/parser/calc.ref.css                  |   4 +
 testsuite/css/parser/close-at-end-of-file.errors   |   3 +-
 testsuite/css/parser/colors-errors.css             |   5 +
 testsuite/css/parser/colors-errors.errors          |  15 +-
 testsuite/css/parser/colors-errors.ref.css         |   3 +
 testsuite/css/parser/colors-red.css                |   4 -
 testsuite/css/parser/colors-red.ref.css            |   4 -
 .../css/parser/css-21-malformed-declarations.css   |  14 +-
 .../parser/css-21-malformed-declarations.errors    |  19 +-
 .../parser/css-21-malformed-declarations.ref.css   |  14 +-
 .../css/parser/css-21-malformed-statements.errors  |   8 +-
 .../css/parser/declarations-invalid-01.errors      |   3 +-
 .../css/parser/declarations-invalid-02.errors      |   3 +-
 .../css/parser/declarations-invalid-03.errors      |   3 +-
 .../css/parser/declarations-invalid-04.errors      |   3 +-
 .../css/parser/declarations-invalid-05.errors      |   3 +-
 .../css/parser/declarations-invalid-06.errors      |   3 +-
 .../css/parser/declarations-invalid-07.errors      |   3 +-
 .../css/parser/declarations-invalid-08.errors      |   6 +-
 testsuite/css/parser/declarations-valid-02.errors  |   1 +
 testsuite/css/parser/declarations-valid-04.css     |   2 +-
 testsuite/css/parser/declarations-valid-05.css     |   2 +-
 testsuite/css/parser/declarations-valid-08.css     |   2 +-
 testsuite/css/parser/declarations-valid-09.css     |   2 +-
 testsuite/css/parser/declarations-valid-10.css     |   2 +-
 testsuite/css/parser/declarations-valid-11.css     |   2 +-
 testsuite/css/parser/declarations-valid-12.css     |   2 +-
 testsuite/css/parser/declarations-valid-13.css     |   2 +-
 testsuite/css/parser/declarations-valid-14.css     |   2 +-
 testsuite/css/parser/declarations-valid-15.css     |   2 +-
 testsuite/css/parser/declarations-valid-16.css     |   2 +-
 testsuite/css/parser/declarations-valid-17.css     |   2 +-
 testsuite/css/parser/declarations-valid-18.css     |   2 +-
 testsuite/css/parser/declarations-valid-22.css     |   2 +-
 testsuite/css/parser/declarations-valid-23.css     |   2 +-
 testsuite/css/parser/declarations-valid-24.css     |   2 +-
 testsuite/css/parser/declarations-valid-25.css     |   2 +-
 testsuite/css/parser/declarations-valid-26.css     |   2 +-
 testsuite/css/parser/declarations.errors           |  40 ++-
 testsuite/css/parser/does-not-exist.errors         |   2 +-
 .../parser/freed-string-in-error-messages.errors   |   2 +-
 testsuite/css/parser/import-cyclic-1.css           |   2 +-
 testsuite/css/parser/import-cyclic-1.errors        |   2 +-
 testsuite/css/parser/import-cyclic-2.css           |   2 +-
 testsuite/css/parser/import-cyclic-2.errors        |   2 +-
 testsuite/css/parser/import-cyclic-3.css           |   2 +-
 testsuite/css/parser/import-cyclic-3.errors        |   2 +-
 testsuite/css/parser/import-nonexistant.errors     |   2 +-
 testsuite/css/parser/import-recursive.errors       |   3 +-
 testsuite/css/parser/meson.build                   |   5 +
 testsuite/css/parser/no-semicolon.errors           |   2 +
 testsuite/css/parser/nth-child.css                 | 332 ++++++++++-----------
 testsuite/css/parser/property-name-errors.errors   |   4 +-
 testsuite/css/parser/pseudo-classes-unknown.errors |  12 +-
 .../parser/radial-background-position-error.errors |   2 +-
 testsuite/css/parser/radial-positions.errors       |   6 +-
 testsuite/css/parser/single-slash.errors           |   2 +-
 testsuite/css/parser/test-css-parser.c             |  12 +-
 .../text-shadow-invalid-but-worked-in-3.12.errors  |   4 +-
 testsuite/css/parser/value-none.errors             |  62 ++--
 97 files changed, 451 insertions(+), 400 deletions(-)
---
diff --git a/testsuite/css/parser/animation-crash-3.12.errors 
b/testsuite/css/parser/animation-crash-3.12.errors
index 035482eba3..065d6d311b 100644
--- a/testsuite/css/parser/animation-crash-3.12.errors
+++ b/testsuite/css/parser/animation-crash-3.12.errors
@@ -1 +1 @@
-animation-crash-3.12.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+animation-crash-3.12.css:2:14-18: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-01.errors b/testsuite/css/parser/at-invalid-01.errors
index 2c54e9ec9d..851910659d 100644
--- a/testsuite/css/parser/at-invalid-01.errors
+++ b/testsuite/css/parser/at-invalid-01.errors
@@ -1 +1 @@
-at-invalid-01.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-01.css:1:9-10: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-02.errors b/testsuite/css/parser/at-invalid-02.errors
index 61307e3916..a0cf0f4488 100644
--- a/testsuite/css/parser/at-invalid-02.errors
+++ b/testsuite/css/parser/at-invalid-02.errors
@@ -1 +1 @@
-at-invalid-02.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-02.css:1:9-12: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-03.errors b/testsuite/css/parser/at-invalid-03.errors
index 5e9575f53a..ababc4e9b9 100644
--- a/testsuite/css/parser/at-invalid-03.errors
+++ b/testsuite/css/parser/at-invalid-03.errors
@@ -1 +1,3 @@
-at-invalid-03.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-03.css:1:13-16: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-03.css:1:9-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+at-invalid-03.css:1:1-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-04.errors b/testsuite/css/parser/at-invalid-04.errors
index c879cb35b6..f3470e135a 100644
--- a/testsuite/css/parser/at-invalid-04.errors
+++ b/testsuite/css/parser/at-invalid-04.errors
@@ -1 +1,3 @@
-at-invalid-04.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-04.css:1:13-16: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-04.css:1:9-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+at-invalid-04.css:1:1-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-05.errors b/testsuite/css/parser/at-invalid-05.errors
index 6b606facad..eaeb390ddb 100644
--- a/testsuite/css/parser/at-invalid-05.errors
+++ b/testsuite/css/parser/at-invalid-05.errors
@@ -1 +1,3 @@
-at-invalid-05.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-05.css:1:13-20: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-05.css:1:9-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+at-invalid-05.css:1:1-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-06.errors b/testsuite/css/parser/at-invalid-06.errors
index fbc5ecccda..781883c941 100644
--- a/testsuite/css/parser/at-invalid-06.errors
+++ b/testsuite/css/parser/at-invalid-06.errors
@@ -1 +1 @@
-at-invalid-06.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-06.css:1:1-2: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-07.errors b/testsuite/css/parser/at-invalid-07.errors
index 5abb2181b7..bcf101f658 100644
--- a/testsuite/css/parser/at-invalid-07.errors
+++ b/testsuite/css/parser/at-invalid-07.errors
@@ -1 +1 @@
-at-invalid-07.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-07.css:1:1-14: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-08.errors b/testsuite/css/parser/at-invalid-08.errors
index 76d8e06210..723db934c9 100644
--- a/testsuite/css/parser/at-invalid-08.errors
+++ b/testsuite/css/parser/at-invalid-08.errors
@@ -1 +1 @@
-at-invalid-08.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-08.css:1:20-26: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/css/parser/at-invalid-09.errors b/testsuite/css/parser/at-invalid-09.errors
index 73cafa3729..22151b571c 100644
--- a/testsuite/css/parser/at-invalid-09.errors
+++ b/testsuite/css/parser/at-invalid-09.errors
@@ -1 +1 @@
-at-invalid-09.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-09.css:1:20-27: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/css/parser/at-invalid-10.errors b/testsuite/css/parser/at-invalid-10.errors
index 1b70899ac1..274eb1bd62 100644
--- a/testsuite/css/parser/at-invalid-10.errors
+++ b/testsuite/css/parser/at-invalid-10.errors
@@ -1 +1 @@
-at-invalid-10.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-10.css:1:20-21: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-11.errors b/testsuite/css/parser/at-invalid-11.errors
index d5a5d2a65b..4740c0599d 100644
--- a/testsuite/css/parser/at-invalid-11.errors
+++ b/testsuite/css/parser/at-invalid-11.errors
@@ -1 +1 @@
-at-invalid-11.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-11.css:1:20-21: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-12.errors b/testsuite/css/parser/at-invalid-12.errors
index d402333d1e..7567285ad9 100644
--- a/testsuite/css/parser/at-invalid-12.errors
+++ b/testsuite/css/parser/at-invalid-12.errors
@@ -1 +1 @@
-at-invalid-12.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-12.css:1:38-44: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-13.errors b/testsuite/css/parser/at-invalid-13.errors
index 1cc20eb60e..6bb9d72acd 100644
--- a/testsuite/css/parser/at-invalid-13.errors
+++ b/testsuite/css/parser/at-invalid-13.errors
@@ -1 +1 @@
-at-invalid-13.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-13.css:1:32-35: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-14.errors b/testsuite/css/parser/at-invalid-14.errors
index 5ea3d43250..dcbdd47c66 100644
--- a/testsuite/css/parser/at-invalid-14.errors
+++ b/testsuite/css/parser/at-invalid-14.errors
@@ -1 +1 @@
-at-invalid-14.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-14.css:1:25-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-15.errors b/testsuite/css/parser/at-invalid-15.errors
index 20c8222160..6015a37a6e 100644
--- a/testsuite/css/parser/at-invalid-15.errors
+++ b/testsuite/css/parser/at-invalid-15.errors
@@ -1 +1 @@
-at-invalid-15.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-15.css:1:36-37: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-16.errors b/testsuite/css/parser/at-invalid-16.errors
index 36beecee49..01566b922f 100644
--- a/testsuite/css/parser/at-invalid-16.errors
+++ b/testsuite/css/parser/at-invalid-16.errors
@@ -1 +1 @@
-at-invalid-16.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-16.css:1:30-31: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-17.errors b/testsuite/css/parser/at-invalid-17.errors
index 15c00b2f4a..dfc18a31fc 100644
--- a/testsuite/css/parser/at-invalid-17.errors
+++ b/testsuite/css/parser/at-invalid-17.errors
@@ -1 +1 @@
-at-invalid-17.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-17.css:1:25-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-18.errors b/testsuite/css/parser/at-invalid-18.errors
index 7e39962835..f412bd2385 100644
--- a/testsuite/css/parser/at-invalid-18.errors
+++ b/testsuite/css/parser/at-invalid-18.errors
@@ -1 +1 @@
-at-invalid-18.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-18.css:1:39-40: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-19.errors b/testsuite/css/parser/at-invalid-19.errors
index d58b5aeef7..ac15f1b27c 100644
--- a/testsuite/css/parser/at-invalid-19.errors
+++ b/testsuite/css/parser/at-invalid-19.errors
@@ -1 +1 @@
-at-invalid-19.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-19.css:1:30-31: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-20.errors b/testsuite/css/parser/at-invalid-20.errors
index 533f9f6142..836e7cb53f 100644
--- a/testsuite/css/parser/at-invalid-20.errors
+++ b/testsuite/css/parser/at-invalid-20.errors
@@ -1 +1 @@
-at-invalid-20.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-20.css:1:15-19: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-21.errors b/testsuite/css/parser/at-invalid-21.errors
index 2a18d02336..a9f94125e0 100644
--- a/testsuite/css/parser/at-invalid-21.errors
+++ b/testsuite/css/parser/at-invalid-21.errors
@@ -1,2 +1,2 @@
-at-invalid-21.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
-at-invalid-21.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-21.css:1:1-11: error: GTK_CSS_PARSER_ERROR_SYNTAX
+at-invalid-21.css:1:31-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-22.css b/testsuite/css/parser/at-invalid-22.css
new file mode 100644
index 0000000000..db9626914a
--- /dev/null
+++ b/testsuite/css/parser/at-invalid-22.css
@@ -0,0 +1 @@
+@define-color color darker ( @blue ) ;
diff --git a/testsuite/css/parser/at-invalid-22.errors b/testsuite/css/parser/at-invalid-22.errors
new file mode 100644
index 0000000000..168e43daff
--- /dev/null
+++ b/testsuite/css/parser/at-invalid-22.errors
@@ -0,0 +1 @@
+at-invalid-22.css:1:21-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/at-invalid-22.ref.css b/testsuite/css/parser/at-invalid-22.ref.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/testsuite/css/parser/at-valid-11.css b/testsuite/css/parser/at-valid-11.css
index db9626914a..5d6883fd36 100644
--- a/testsuite/css/parser/at-valid-11.css
+++ b/testsuite/css/parser/at-valid-11.css
@@ -1 +1 @@
-@define-color color darker ( @blue ) ;
+@define-color color darker( @blue ) ;
diff --git a/testsuite/css/parser/at-valid-16.css b/testsuite/css/parser/at-valid-16.css
index cc36511c6d..8004be0201 100644
--- a/testsuite/css/parser/at-valid-16.css
+++ b/testsuite/css/parser/at-valid-16.css
@@ -1 +1 @@
-@define-color color mix(shade (#121212, 0.5), mix (rgb(10%,20%,100%), @blue,0.5), 0.2);
+@define-color color mix(shade(#121212, 0.5), mix(rgb(10%,20%,100%), @blue,0.5), 0.2);
diff --git a/testsuite/css/parser/background-position-errors.errors 
b/testsuite/css/parser/background-position-errors.errors
index de4b227414..5d198850a1 100644
--- a/testsuite/css/parser/background-position-errors.errors
+++ b/testsuite/css/parser/background-position-errors.errors
@@ -1 +1 @@
-background-position-errors.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position-errors.css:2:24-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/background-position.errors b/testsuite/css/parser/background-position.errors
index 8a3e2c2b7c..2446e876b5 100644
--- a/testsuite/css/parser/background-position.errors
+++ b/testsuite/css/parser/background-position.errors
@@ -1,14 +1,12 @@
-background-position.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:18: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:38: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:42: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:66: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:70: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:90: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:102: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:110: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:122: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:126: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:150: error: GTK_CSS_PARSER_ERROR_SYNTAX
-background-position.css:154: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:6:28-31: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:18:28-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:26:28-31: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:38:29-33: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:42:29-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:66:30-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:70:30-35: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:90:31-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:102:31-37: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:110:31-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:150:28-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+background-position.css:154:28-33: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/background-position.ref.css 
b/testsuite/css/parser/background-position.ref.css
index a496921b92..8c7afc18f9 100644
--- a/testsuite/css/parser/background-position.ref.css
+++ b/testsuite/css/parser/background-position.ref.css
@@ -109,9 +109,11 @@ db {
 }
 
 eb {
+  background-position: left;
 }
 
 fb {
+  background-position: right;
 }
 
 gb {
diff --git a/testsuite/css/parser/border-infloop-3.12.errors b/testsuite/css/parser/border-infloop-3.12.errors
index 12870eb619..180a2d558c 100644
--- a/testsuite/css/parser/border-infloop-3.12.errors
+++ b/testsuite/css/parser/border-infloop-3.12.errors
@@ -1 +1 @@
-border-infloop-3.12.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-infloop-3.12.css:2:25-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/border-radius-shorthand.errors 
b/testsuite/css/parser/border-radius-shorthand.errors
index 55d3b8c184..8b0ebf376e 100644
--- a/testsuite/css/parser/border-radius-shorthand.errors
+++ b/testsuite/css/parser/border-radius-shorthand.errors
@@ -1,13 +1,13 @@
-border-radius-shorthand.css:64: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:68: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:72: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:76: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:80: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:84: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:88: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:92: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:96: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:100: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:104: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:108: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border-radius-shorthand.css:112: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:64:18-22: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:68:22-26: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:72:26-30: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:76:30-34: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:80:36-40: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:84:40-44: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:88:44-48: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:92:48-52: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border-radius-shorthand.css:96:18-19: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:100:18-19: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:104:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:108:34-37: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border-radius-shorthand.css:112:44-47: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/border.errors b/testsuite/css/parser/border.errors
index 86d0d2a1ee..24b36bfff1 100644
--- a/testsuite/css/parser/border.errors
+++ b/testsuite/css/parser/border.errors
@@ -1,8 +1,8 @@
-border.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:30: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:34: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:38: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:42: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:46: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:50: error: GTK_CSS_PARSER_ERROR_SYNTAX
-border.css:54: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:26:25-29: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:30:23-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:34:23-25: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border.css:38:23-27: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+border.css:42:23-29: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:46:29-35: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:50:31-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+border.css:54:29-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/calc-errors.css b/testsuite/css/parser/calc-errors.css
index b1464c30cb..592e1a3954 100644
--- a/testsuite/css/parser/calc-errors.css
+++ b/testsuite/css/parser/calc-errors.css
@@ -1,7 +1,3 @@
-a {
-  margin-left: calc(calc(1px));
-}
-
 b {
   margin-left: calc(1px + 2s);
 }
@@ -59,7 +55,7 @@ o {
 }
 
 p {
-  margin-left: calc((((((1px))));
+  margin-left: calc((((((1px))));));
 }
 
 q {
@@ -73,3 +69,7 @@ r {
 s {
   margin-left: calc(1px + (error));
 }
+
+t {
+  margin-left: calc((3px + 4px and a lot of junk));
+}
diff --git a/testsuite/css/parser/calc-errors.errors b/testsuite/css/parser/calc-errors.errors
index db05431565..da60d5d655 100644
--- a/testsuite/css/parser/calc-errors.errors
+++ b/testsuite/css/parser/calc-errors.errors
@@ -1,19 +1,19 @@
-calc-errors.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:10: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:14: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:18: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:22: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:30: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:34: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:38: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:42: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:46: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:50: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:54: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:58: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:62: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:66: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:70: error: GTK_CSS_PARSER_ERROR_SYNTAX
-calc-errors.css:74: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:2:27-29: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:6:27-29: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:10:21-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:14:27-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:18:25-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:22:21-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:26:27-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:30:21-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:34:27-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:38:27-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:42:25-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:46:25-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:50:27-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:54:27-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:58:33-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:62:35-36: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:66:27-30: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:70:28-33: error: GTK_CSS_PARSER_ERROR_SYNTAX
+calc-errors.css:74:32-49: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/calc-errors.ref.css b/testsuite/css/parser/calc-errors.ref.css
index 3966afd519..f7df1f634b 100644
--- a/testsuite/css/parser/calc-errors.ref.css
+++ b/testsuite/css/parser/calc-errors.ref.css
@@ -1,6 +1,3 @@
-a {
-}
-
 b {
 }
 
@@ -54,3 +51,6 @@ r {
 
 s {
 }
+
+t {
+}
diff --git a/testsuite/css/parser/calc.css b/testsuite/css/parser/calc.css
index cc511fa7de..0c07d7234d 100644
--- a/testsuite/css/parser/calc.css
+++ b/testsuite/css/parser/calc.css
@@ -37,3 +37,7 @@ i {
 j {
   border-bottom-right-radius: calc((1 + 1 + (1 + 1) + 1) * 1px) calc((1 / 1) * 1px);
 }
+
+k {
+  margin-left: calc(calc(1px));
+}
diff --git a/testsuite/css/parser/calc.ref.css b/testsuite/css/parser/calc.ref.css
index cc2ca59d82..eb36835552 100644
--- a/testsuite/css/parser/calc.ref.css
+++ b/testsuite/css/parser/calc.ref.css
@@ -37,3 +37,7 @@ i {
 j {
   border-bottom-right-radius: 5px 1px;
 }
+
+k {
+  margin-left: 1px;
+}
diff --git a/testsuite/css/parser/close-at-end-of-file.errors 
b/testsuite/css/parser/close-at-end-of-file.errors
index 34159058df..77028593ef 100644
--- a/testsuite/css/parser/close-at-end-of-file.errors
+++ b/testsuite/css/parser/close-at-end-of-file.errors
@@ -1 +1,2 @@
-close-at-end-of-file.css:3: error: GTK_CSS_PARSER_ERROR_SYNTAX
+close-at-end-of-file.css:2:3-3:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+close-at-end-of-file.css:1:5-3:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/colors-errors.css b/testsuite/css/parser/colors-errors.css
index 4f7f3f938d..df9de80a0f 100644
--- a/testsuite/css/parser/colors-errors.css
+++ b/testsuite/css/parser/colors-errors.css
@@ -25,3 +25,8 @@ f {
 g {
   color: rgba(1,2,3,4,5);
 }
+
+h {
+  color: rgb(100%,0,0);
+}
+
diff --git a/testsuite/css/parser/colors-errors.errors b/testsuite/css/parser/colors-errors.errors
index 506c0b3ec4..b52d0256cf 100644
--- a/testsuite/css/parser/colors-errors.errors
+++ b/testsuite/css/parser/colors-errors.errors
@@ -1,7 +1,8 @@
-colors-errors.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:10: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:14: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:18: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:22: error: GTK_CSS_PARSER_ERROR_SYNTAX
-colors-errors.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+colors-errors.css:2:10-12: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+colors-errors.css:6:10-13: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+colors-errors.css:10:10-16: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+colors-errors.css:14:10-18: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+colors-errors.css:18:10-23: error: GTK_CSS_PARSER_ERROR_SYNTAX
+colors-errors.css:22:19-20: error: GTK_CSS_PARSER_ERROR_SYNTAX
+colors-errors.css:26:22-23: error: GTK_CSS_PARSER_ERROR_SYNTAX
+colors-errors.css:30:19-20: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/colors-errors.ref.css b/testsuite/css/parser/colors-errors.ref.css
index e458bcfc14..cfb1eff431 100644
--- a/testsuite/css/parser/colors-errors.ref.css
+++ b/testsuite/css/parser/colors-errors.ref.css
@@ -18,3 +18,6 @@ f {
 
 g {
 }
+
+h {
+}
diff --git a/testsuite/css/parser/colors-red.css b/testsuite/css/parser/colors-red.css
index ed69db6332..13d75908dd 100644
--- a/testsuite/css/parser/colors-red.css
+++ b/testsuite/css/parser/colors-red.css
@@ -14,10 +14,6 @@ d {
   color: rgba(100%,0%,0%,1);
 }
 
-e {
-  color: rgb(100%,0,0);
-}
-
 f {
   color: #f00;
 }
diff --git a/testsuite/css/parser/colors-red.ref.css b/testsuite/css/parser/colors-red.ref.css
index f8e68c1a68..ce6c42f623 100644
--- a/testsuite/css/parser/colors-red.ref.css
+++ b/testsuite/css/parser/colors-red.ref.css
@@ -14,10 +14,6 @@ d {
   color: rgb(255,0,0);
 }
 
-e {
-  color: rgb(255,0,0);
-}
-
 f {
   color: rgb(255,0,0);
 }
diff --git a/testsuite/css/parser/css-21-malformed-declarations.css 
b/testsuite/css/parser/css-21-malformed-declarations.css
index 7ea0cc6b6e..9bfbd0a3cc 100644
--- a/testsuite/css/parser/css-21-malformed-declarations.css
+++ b/testsuite/css/parser/css-21-malformed-declarations.css
@@ -1,7 +1,7 @@
-p { color:green }
-p { color:green; color }  /* malformed declaration missing ':', value */
-p { color:red;   color; color:green }  /* same with expected recovery */
-p { color:green; color: } /* malformed declaration missing value */
-p { color:red;   color:; color:green } /* same with expected recovery */
-p { color:green; color{;color:maroon} } /* unexpected tokens { } */
-p { color:red;   color{;color:maroon}; color:green } /* same with recovery */
+a { color:green }
+b { color:green; color }  /* malformed declaration missing ':', value */
+c { color:red;   color; color:green }  /* same with expected recovery */
+d { color:green; color: } /* malformed declaration missing value */
+e { color:red;   color:; color:green } /* same with expected recovery */
+f { color:green; color{;color:maroon} } /* unexpected tokens { } */
+g { color:red;   color{;color:maroon}; color:green } /* same with recovery */
diff --git a/testsuite/css/parser/css-21-malformed-declarations.errors 
b/testsuite/css/parser/css-21-malformed-declarations.errors
index 128b52e2ce..b3eb929f91 100644
--- a/testsuite/css/parser/css-21-malformed-declarations.errors
+++ b/testsuite/css/parser/css-21-malformed-declarations.errors
@@ -1,6 +1,13 @@
-css-21-malformed-declarations.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:3: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:4: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:5: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-declarations.css:7: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:1:5-17: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:2:24-25: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:2:18-24: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:3:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:3:25-37: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:4:25-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:4:18-25: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:5:24-25: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:5:26-38: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:6:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:6:18-39: error: GTK_CSS_PARSER_WARNING_SYNTAX
+css-21-malformed-declarations.css:7:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-declarations.css:7:40-52: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/css-21-malformed-declarations.ref.css 
b/testsuite/css/parser/css-21-malformed-declarations.ref.css
index f83e679167..deda947955 100644
--- a/testsuite/css/parser/css-21-malformed-declarations.ref.css
+++ b/testsuite/css/parser/css-21-malformed-declarations.ref.css
@@ -1,27 +1,27 @@
-p {
+a {
   color: rgb(0,128,0);
 }
 
-p {
+b {
   color: rgb(0,128,0);
 }
 
-p {
+c {
   color: rgb(0,128,0);
 }
 
-p {
+d {
   color: rgb(0,128,0);
 }
 
-p {
+e {
   color: rgb(0,128,0);
 }
 
-p {
+f {
   color: rgb(0,128,0);
 }
 
-p {
+g {
   color: rgb(0,128,0);
 }
diff --git a/testsuite/css/parser/css-21-malformed-statements.errors 
b/testsuite/css/parser/css-21-malformed-statements.errors
index 23b3b4b23a..a06d48d89b 100644
--- a/testsuite/css/parser/css-21-malformed-statements.errors
+++ b/testsuite/css/parser/css-21-malformed-statements.errors
@@ -1,4 +1,4 @@
-css-21-malformed-statements.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-statements.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-statements.css:3: error: GTK_CSS_PARSER_ERROR_SYNTAX
-css-21-malformed-statements.css:4: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-statements.css:1:3-8: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-statements.css:2:1-5: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-statements.css:3:1-2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+css-21-malformed-statements.css:4:1-2: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-01.errors 
b/testsuite/css/parser/declarations-invalid-01.errors
index 4114795b35..fde89fed67 100644
--- a/testsuite/css/parser/declarations-invalid-01.errors
+++ b/testsuite/css/parser/declarations-invalid-01.errors
@@ -1 +1,2 @@
-declarations-invalid-01.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-01.css:1:11-12: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-01.css:1:5-11: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-02.errors 
b/testsuite/css/parser/declarations-invalid-02.errors
index b267550163..41caa3f86b 100644
--- a/testsuite/css/parser/declarations-invalid-02.errors
+++ b/testsuite/css/parser/declarations-invalid-02.errors
@@ -1 +1,2 @@
-declarations-invalid-02.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-02.css:1:24-25: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-02.css:1:18-24: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-03.errors 
b/testsuite/css/parser/declarations-invalid-03.errors
index d804db4eb8..0298d5cfaf 100644
--- a/testsuite/css/parser/declarations-invalid-03.errors
+++ b/testsuite/css/parser/declarations-invalid-03.errors
@@ -1 +1,2 @@
-declarations-invalid-03.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-03.css:1:21-22: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-03.css:1:23-35: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-04.errors 
b/testsuite/css/parser/declarations-invalid-04.errors
index de0de60ddb..10ad666997 100644
--- a/testsuite/css/parser/declarations-invalid-04.errors
+++ b/testsuite/css/parser/declarations-invalid-04.errors
@@ -1 +1,2 @@
-declarations-invalid-04.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-04.css:1:25-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-04.css:1:18-25: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-05.errors 
b/testsuite/css/parser/declarations-invalid-05.errors
index 061e4b27b3..e67bf467ad 100644
--- a/testsuite/css/parser/declarations-invalid-05.errors
+++ b/testsuite/css/parser/declarations-invalid-05.errors
@@ -1 +1,2 @@
-declarations-invalid-05.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-05.css:1:22-23: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-05.css:1:24-36: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-06.errors 
b/testsuite/css/parser/declarations-invalid-06.errors
index a10b6d26ad..fc1a0e077c 100644
--- a/testsuite/css/parser/declarations-invalid-06.errors
+++ b/testsuite/css/parser/declarations-invalid-06.errors
@@ -1 +1,2 @@
-declarations-invalid-06.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-06.css:1:23-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-06.css:1:18-39: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-07.errors 
b/testsuite/css/parser/declarations-invalid-07.errors
index 4311252694..2eb16e1921 100644
--- a/testsuite/css/parser/declarations-invalid-07.errors
+++ b/testsuite/css/parser/declarations-invalid-07.errors
@@ -1 +1,2 @@
-declarations-invalid-07.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-07.css:1:21-22: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-07.css:1:38-50: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-invalid-08.errors 
b/testsuite/css/parser/declarations-invalid-08.errors
index de507ef742..fc50212494 100644
--- a/testsuite/css/parser/declarations-invalid-08.errors
+++ b/testsuite/css/parser/declarations-invalid-08.errors
@@ -1,3 +1,3 @@
-declarations-invalid-08.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations-invalid-08.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations-invalid-08.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations-invalid-08.css:1:5-12: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+declarations-invalid-08.css:1:5-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations-invalid-08.css:1:3-2:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-valid-02.errors 
b/testsuite/css/parser/declarations-valid-02.errors
new file mode 100644
index 0000000000..98b1d42e47
--- /dev/null
+++ b/testsuite/css/parser/declarations-valid-02.errors
@@ -0,0 +1 @@
+declarations-valid-02.css:1:5-21: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/declarations-valid-04.css b/testsuite/css/parser/declarations-valid-04.css
index 630d941455..8a1a0969ac 100644
--- a/testsuite/css/parser/declarations-valid-04.css
+++ b/testsuite/css/parser/declarations-valid-04.css
@@ -1 +1 @@
-* { font: bold 15px sans }
+* { font: bold 15px sans ;}
diff --git a/testsuite/css/parser/declarations-valid-05.css b/testsuite/css/parser/declarations-valid-05.css
index c3997d3a27..b05777025e 100644
--- a/testsuite/css/parser/declarations-valid-05.css
+++ b/testsuite/css/parser/declarations-valid-05.css
@@ -1 +1 @@
-* { color: red }
+* { color: red; }
diff --git a/testsuite/css/parser/declarations-valid-08.css b/testsuite/css/parser/declarations-valid-08.css
index a89205d44e..280e9f7f8f 100644
--- a/testsuite/css/parser/declarations-valid-08.css
+++ b/testsuite/css/parser/declarations-valid-08.css
@@ -1 +1 @@
-* { font: /* comment here */ 15px Sans }
+* { font: /* comment here */ 15px Sans; }
diff --git a/testsuite/css/parser/declarations-valid-09.css b/testsuite/css/parser/declarations-valid-09.css
index 88530f0b90..667c6b404c 100644
--- a/testsuite/css/parser/declarations-valid-09.css
+++ b/testsuite/css/parser/declarations-valid-09.css
@@ -1 +1 @@
-* { color: red; background-color: shade (@bg_color, 0.5) }
+* { color: red; background-color: shade(@bg_color, 0.5); }
diff --git a/testsuite/css/parser/declarations-valid-10.css b/testsuite/css/parser/declarations-valid-10.css
index 8ecb711633..d2b0208591 100644
--- a/testsuite/css/parser/declarations-valid-10.css
+++ b/testsuite/css/parser/declarations-valid-10.css
@@ -1 +1 @@
-* { margin: 5px }
+* { margin: 5px ; }
diff --git a/testsuite/css/parser/declarations-valid-11.css b/testsuite/css/parser/declarations-valid-11.css
index 975401f562..d928f5c4d1 100644
--- a/testsuite/css/parser/declarations-valid-11.css
+++ b/testsuite/css/parser/declarations-valid-11.css
@@ -1 +1 @@
-* { margin: 5px 10px }
+* { margin: 5px 10px; }
diff --git a/testsuite/css/parser/declarations-valid-12.css b/testsuite/css/parser/declarations-valid-12.css
index a9c63a9daa..849cc63795 100644
--- a/testsuite/css/parser/declarations-valid-12.css
+++ b/testsuite/css/parser/declarations-valid-12.css
@@ -1 +1 @@
-* { margin: 5px 10px 3px }
+* { margin: 5px 10px 3px; }
diff --git a/testsuite/css/parser/declarations-valid-13.css b/testsuite/css/parser/declarations-valid-13.css
index 15a4776a31..0f7b7f00d7 100644
--- a/testsuite/css/parser/declarations-valid-13.css
+++ b/testsuite/css/parser/declarations-valid-13.css
@@ -1 +1 @@
-* { margin: 5px 10px 3px 5px }
+* { margin: 5px 10px 3px 5px; }
diff --git a/testsuite/css/parser/declarations-valid-14.css b/testsuite/css/parser/declarations-valid-14.css
index f03feac39b..f9f4143b8b 100644
--- a/testsuite/css/parser/declarations-valid-14.css
+++ b/testsuite/css/parser/declarations-valid-14.css
@@ -1 +1 @@
-* { padding: 5px }
+* { padding: 5px; }
diff --git a/testsuite/css/parser/declarations-valid-15.css b/testsuite/css/parser/declarations-valid-15.css
index 5e84be0790..2a427b220f 100644
--- a/testsuite/css/parser/declarations-valid-15.css
+++ b/testsuite/css/parser/declarations-valid-15.css
@@ -1 +1 @@
-* { padding: 5px 10px }
+* { padding: 5px 10px; }
diff --git a/testsuite/css/parser/declarations-valid-16.css b/testsuite/css/parser/declarations-valid-16.css
index fe8a64e819..6af4bc59b2 100644
--- a/testsuite/css/parser/declarations-valid-16.css
+++ b/testsuite/css/parser/declarations-valid-16.css
@@ -1 +1 @@
-* { border-width: 5em; border-radius: 10ex }
+* { border-width: 5em; border-radius: 10ex; }
diff --git a/testsuite/css/parser/declarations-valid-17.css b/testsuite/css/parser/declarations-valid-17.css
index a08963ddda..09a202167b 100644
--- a/testsuite/css/parser/declarations-valid-17.css
+++ b/testsuite/css/parser/declarations-valid-17.css
@@ -1 +1 @@
-* { border-color: #ff00ff }
+* { border-color: #ff00ff; }
diff --git a/testsuite/css/parser/declarations-valid-18.css b/testsuite/css/parser/declarations-valid-18.css
index d75aa58406..f4074c7ac0 100644
--- a/testsuite/css/parser/declarations-valid-18.css
+++ b/testsuite/css/parser/declarations-valid-18.css
@@ -1 +1 @@
-* { font: 10pt definitelydoesnotexist }
+* { font: 10pt definitelydoesnotexist; }
diff --git a/testsuite/css/parser/declarations-valid-22.css b/testsuite/css/parser/declarations-valid-22.css
index dff250639c..c84459347f 100644
--- a/testsuite/css/parser/declarations-valid-22.css
+++ b/testsuite/css/parser/declarations-valid-22.css
@@ -1 +1 @@
-* { border-image: url("./test.png") 3 4 3 4 stretch       }
+* { border-image: url("./test.png") 3 4 3 4 stretch   ;   }
diff --git a/testsuite/css/parser/declarations-valid-23.css b/testsuite/css/parser/declarations-valid-23.css
index 1cbeeb97cf..34417ae2ae 100644
--- a/testsuite/css/parser/declarations-valid-23.css
+++ b/testsuite/css/parser/declarations-valid-23.css
@@ -1 +1 @@
-* { border-image: url("./test.png") 3 4 3 4 repeat stretch}
+* { border-image: url("./test.png") 3 4 3 4 repeat stretch;}
diff --git a/testsuite/css/parser/declarations-valid-24.css b/testsuite/css/parser/declarations-valid-24.css
index cb1794aee8..cf054e9723 100644
--- a/testsuite/css/parser/declarations-valid-24.css
+++ b/testsuite/css/parser/declarations-valid-24.css
@@ -1 +1 @@
-* { transition: 150ms ease-in-out                          }
+* { transition: 150ms ease-in-out                          ;}
diff --git a/testsuite/css/parser/declarations-valid-25.css b/testsuite/css/parser/declarations-valid-25.css
index 957cc6327e..333d91425c 100644
--- a/testsuite/css/parser/declarations-valid-25.css
+++ b/testsuite/css/parser/declarations-valid-25.css
@@ -1 +1 @@
-* { transition: 1s linear loop                             }
+* { transition: 1s linear loop;                             }
diff --git a/testsuite/css/parser/declarations-valid-26.css b/testsuite/css/parser/declarations-valid-26.css
index e49c23a35b..c6d867a70d 100644
--- a/testsuite/css/parser/declarations-valid-26.css
+++ b/testsuite/css/parser/declarations-valid-26.css
@@ -1 +1 @@
-* { color: red; background-color: transparent }
+* { color: red; background-color: transparent; }
diff --git a/testsuite/css/parser/declarations.errors b/testsuite/css/parser/declarations.errors
index d80ddf9cc8..b69fb9ab9b 100644
--- a/testsuite/css/parser/declarations.errors
+++ b/testsuite/css/parser/declarations.errors
@@ -1,14 +1,26 @@
-declarations.css:24: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:26: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:28: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:30: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:32: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:34: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:36: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:38: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:40: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:42: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:44: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:46: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:48: error: GTK_CSS_PARSER_ERROR_SYNTAX
-declarations.css:50: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:1:5-6: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:1:6-7: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:1:7-8: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:8:5-6: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:12:3-4: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:13:3-4: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:14:3-4: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:19:3-20:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:22:5-22: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:24:16-17: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:24:5-16: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:26:15-16: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:28:17-18: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:28:5-17: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:30:18-19: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:30:5-18: error: GTK_CSS_PARSER_WARNING_SYNTAX
+declarations.css:32:17-18: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:34:16-17: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:36:17-18: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:38:16-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:40:15-16: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:42:17-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:44:18-29: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:46:17-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:48:16-17: error: GTK_CSS_PARSER_ERROR_SYNTAX
+declarations.css:50:17-18: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/does-not-exist.errors b/testsuite/css/parser/does-not-exist.errors
index 0fb86c365d..08ba7600eb 100644
--- a/testsuite/css/parser/does-not-exist.errors
+++ b/testsuite/css/parser/does-not-exist.errors
@@ -1 +1 @@
-does-not-exist.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+does-not-exist.css:2:3-17: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/css/parser/freed-string-in-error-messages.errors 
b/testsuite/css/parser/freed-string-in-error-messages.errors
index 4e237ca530..c5fcc9a810 100644
--- a/testsuite/css/parser/freed-string-in-error-messages.errors
+++ b/testsuite/css/parser/freed-string-in-error-messages.errors
@@ -1 +1 @@
-freed-string-in-error-messages.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+freed-string-in-error-messages.css:2:23-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/import-cyclic-1.css b/testsuite/css/parser/import-cyclic-1.css
index eaa1731dda..31e7a5b144 100644
--- a/testsuite/css/parser/import-cyclic-1.css
+++ b/testsuite/css/parser/import-cyclic-1.css
@@ -1,5 +1,5 @@
 @import url("import-cyclic-2.css");
 
 a {
-  padding-top: 1px
+  padding-top: 1px;
 }
diff --git a/testsuite/css/parser/import-cyclic-1.errors b/testsuite/css/parser/import-cyclic-1.errors
index b88d31671e..4a5f739ee6 100644
--- a/testsuite/css/parser/import-cyclic-1.errors
+++ b/testsuite/css/parser/import-cyclic-1.errors
@@ -1 +1 @@
-import-cyclic-3.css:1: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-cyclic-3.css:1:1-36: error: GTK_CSS_PARSER_ERROR_IMPORT
diff --git a/testsuite/css/parser/import-cyclic-2.css b/testsuite/css/parser/import-cyclic-2.css
index 9e5b89c712..1841df2bdb 100644
--- a/testsuite/css/parser/import-cyclic-2.css
+++ b/testsuite/css/parser/import-cyclic-2.css
@@ -1,5 +1,5 @@
 @import url("import-cyclic-3.css");
 
 a {
-  padding-top: 2px
+  padding-top: 2px;
 }
diff --git a/testsuite/css/parser/import-cyclic-2.errors b/testsuite/css/parser/import-cyclic-2.errors
index bf7fecbe91..1ff1a9b428 100644
--- a/testsuite/css/parser/import-cyclic-2.errors
+++ b/testsuite/css/parser/import-cyclic-2.errors
@@ -1 +1 @@
-import-cyclic-1.css:1: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-cyclic-1.css:1:1-36: error: GTK_CSS_PARSER_ERROR_IMPORT
diff --git a/testsuite/css/parser/import-cyclic-3.css b/testsuite/css/parser/import-cyclic-3.css
index 7ada04c6d2..da93af9bcb 100644
--- a/testsuite/css/parser/import-cyclic-3.css
+++ b/testsuite/css/parser/import-cyclic-3.css
@@ -1,5 +1,5 @@
 @import url("import-cyclic-1.css");
 
 a {
-  padding-top: 3px
+  padding-top: 3px;
 }
diff --git a/testsuite/css/parser/import-cyclic-3.errors b/testsuite/css/parser/import-cyclic-3.errors
index 154684e14a..d5e9e51e43 100644
--- a/testsuite/css/parser/import-cyclic-3.errors
+++ b/testsuite/css/parser/import-cyclic-3.errors
@@ -1 +1 @@
-import-cyclic-2.css:1: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-cyclic-2.css:1:1-36: error: GTK_CSS_PARSER_ERROR_IMPORT
diff --git a/testsuite/css/parser/import-nonexistant.errors b/testsuite/css/parser/import-nonexistant.errors
index db91da39d4..76e5fae4f7 100644
--- a/testsuite/css/parser/import-nonexistant.errors
+++ b/testsuite/css/parser/import-nonexistant.errors
@@ -1 +1 @@
-import-nonexistant.css:1: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-nonexistant.css:1:1-93: error: GTK_CSS_PARSER_ERROR_IMPORT
diff --git a/testsuite/css/parser/import-recursive.errors b/testsuite/css/parser/import-recursive.errors
index 4999ccc5a6..add4293752 100644
--- a/testsuite/css/parser/import-recursive.errors
+++ b/testsuite/css/parser/import-recursive.errors
@@ -1 +1,2 @@
-import-recursive.css:1: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-recursive.css:1:1-37: error: GTK_CSS_PARSER_ERROR_IMPORT
+import-recursive.css:4:3-5:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/meson.build b/testsuite/css/parser/meson.build
index 9451633efd..bedebff64e 100644
--- a/testsuite/css/parser/meson.build
+++ b/testsuite/css/parser/meson.build
@@ -101,6 +101,9 @@ test_data = [
   'at-invalid-21.css',
   'at-invalid-21.errors',
   'at-invalid-21.ref.css',
+  'at-invalid-22.css',
+  'at-invalid-22.errors',
+  'at-invalid-22.ref.css',
   'at-valid-01.css',
   'at-valid-01.ref.css',
   'at-valid-02.css',
@@ -247,6 +250,7 @@ test_data = [
   'declarations-valid-01.css',
   'declarations-valid-01.ref.css',
   'declarations-valid-02.css',
+  'declarations-valid-02.errors',
   'declarations-valid-02.ref.css',
   'declarations-valid-03.css',
   'declarations-valid-03.ref.css',
@@ -344,6 +348,7 @@ test_data = [
   'min-width.css',
   'min-width.ref.css',
   'no-semicolon.css',
+  'no-semicolon.errors',
   'no-semicolon.ref.css',
   'not.css',
   'not.ref.css',
diff --git a/testsuite/css/parser/no-semicolon.errors b/testsuite/css/parser/no-semicolon.errors
new file mode 100644
index 0000000000..0362acc984
--- /dev/null
+++ b/testsuite/css/parser/no-semicolon.errors
@@ -0,0 +1,2 @@
+no-semicolon.css:2:3-3:1: error: GTK_CSS_PARSER_WARNING_SYNTAX
+no-semicolon.css:4:7-25: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/css/parser/nth-child.css b/testsuite/css/parser/nth-child.css
index 7860a3b3db..1c68b541a6 100644
--- a/testsuite/css/parser/nth-child.css
+++ b/testsuite/css/parser/nth-child.css
@@ -1,292 +1,292 @@
-a:nth-last-child( odd  ) { color: red }
-a:nth-child(even   ) { color: red }
-b:nth-child(   /**/n) { color: red }
+a:nth-last-child( odd  ) { color: red; }
+a:nth-child(even   ) { color: red; }
+b:nth-child(   /**/n) { color: red; }
 c:nth-child(/**/    n  +
-0) { color: red }
-d:nth-child(   n +  1) { color: red }
-e:nth-child(    /**/n+ 2) { color: red }
-f:nth-last-child(              n+      10) { color: red }
+0) { color: red; }
+d:nth-child(   n +  1) { color: red; }
+e:nth-child(    /**/n+ 2) { color: red; }
+f:nth-last-child(              n+      10) { color: red; }
 g:nth-child(
 
 
-n) { color: red }
+n) { color: red; }
 h:nth-child(/**/       n
--  0) { color: red }
+-  0) { color: red; }
 i:nth-child(
-/**/ n  -1) { color: red }
-j:nth-child(/**/  /**/n - 2) { color: red }
+/**/ n  -1) { color: red; }
+j:nth-child(/**/  /**/n - 2) { color: red; }
 k:nth-last-child(       n  -
-10) { color: red }
-l:nth-last-child( /**/0) { color: red }
+10) { color: red; }
+l:nth-last-child( /**/0) { color: red; }
 m:nth-child(
- 0n) { color: red }
+ 0n) { color: red; }
 n:nth-last-child( /**/0/**/n
 +
-0) { color: red }
-o:nth-last-child(   0 n  +     1) { color: red }
-p:nth-last-child(      0n+/**/2) { color: red }
+0) { color: red; }
+o:nth-last-child(   0 n  +     1) { color: red; }
+p:nth-last-child(      0n+/**/2) { color: red; }
 q:nth-last-child(
- 0     n  +    10) { color: red }
+ 0     n  +    10) { color: red; }
 r:nth-child(  0
-n) { color: red }
+n) { color: red; }
 s:nth-child(
-       0 n  -/**/0) { color: red }
+       0 n  -/**/0) { color: red; }
 t:nth-last-child(  
 0
 n
--      1) { color: red }
-u:nth-last-child(   0  n  -/**/2) { color: red }
-v:nth-last-child( 0n  -10) { color: red }
-w:nth-last-child(  1) { color: red }
+-      1) { color: red; }
+u:nth-last-child(   0  n  -/**/2) { color: red; }
+v:nth-last-child( 0n  -10) { color: red; }
+w:nth-last-child(  1) { color: red; }
 x:nth-child( 
-1n) { color: red }
+1n) { color: red; }
 y:nth-child(/**//**/1  n +
-0) { color: red }
+0) { color: red; }
 z:nth-child(
 1
 n +
-1) { color: red }
+1) { color: red; }
 ab:nth-child(
- 1 n   +2) { color: red }
+ 1 n   +2) { color: red; }
 bb:nth-last-child(     1n  +
-10) { color: red }
-cb:nth-last-child(1/**/n) { color: red }
-db:nth-last-child(      1  n   -0) { color: red }
+10) { color: red; }
+cb:nth-last-child(1/**/n) { color: red; }
+db:nth-last-child(      1  n   -0) { color: red; }
 eb:nth-child( 1 n-
-1) { color: red }
+1) { color: red; }
 fb:nth-child(/**/
 1  n-
-2) { color: red }
-gb:nth-child(          1n  -10) { color: red }
-hb:nth-last-child(/**/  2) { color: red }
-ib:nth-child( 2 n) { color: red }
+2) { color: red; }
+gb:nth-child(          1n  -10) { color: red; }
+hb:nth-last-child(/**/  2) { color: red; }
+ib:nth-child( 2 n) { color: red; }
 jb:nth-last-child(   2 n +
-0) { color: red }
-kb:nth-child(/**/      2n+     1) { color: red }
+0) { color: red; }
+kb:nth-child(/**/      2n+     1) { color: red; }
 lb:nth-child(/**//**/2/**/n
-+  2) { color: red }
++  2) { color: red; }
 mb:nth-last-child(
 2
 n  +
-10) { color: red }
+10) { color: red; }
 nb:nth-last-child(  
-2n) { color: red }
+2n) { color: red; }
 ob:nth-child( 
-2      n  -    0) { color: red }
+2      n  -    0) { color: red; }
 pb:nth-last-child(
- 2n/**/-/**/1) { color: red }
-qb:nth-child( /**/2    n - 2) { color: red }
+ 2n/**/-/**/1) { color: red; }
+qb:nth-child( /**/2    n - 2) { color: red; }
 rb:nth-last-child(
-       2/**/n -        10) { color: red }
-sb:nth-child(    10) { color: red }
+       2/**/n -        10) { color: red; }
+sb:nth-child(    10) { color: red; }
 tb:nth-last-child(
-       10n) { color: red }
+       10n) { color: red; }
 ub:nth-last-child(
-  10/**/n/**/+  0) { color: red }
+  10/**/n/**/+  0) { color: red; }
 vb:nth-child(  10
-n+/**/1) { color: red }
+n+/**/1) { color: red; }
 wb:nth-last-child(     10 n  +
-2) { color: red }
-xb:nth-child(   10/**/n  +  10) { color: red }
+2) { color: red; }
+xb:nth-child(   10/**/n  +  10) { color: red; }
 yb:nth-last-child(       10
-n) { color: red }
+n) { color: red; }
 zb:nth-last-child( 10  n
--0) { color: red }
+-0) { color: red; }
 ac:nth-last-child(10n/**/-
-1) { color: red }
+1) { color: red; }
 bc:nth-child(  10 n
--/**/2) { color: red }
+-/**/2) { color: red; }
 cc:nth-child(
 /**/10 n
--  10) { color: red }
-dc:nth-child( even     ) { color: red }
+-  10) { color: red; }
+dc:nth-child( even     ) { color: red; }
 ec:nth-last-child(
 +
-/**/n) { color: red }
+/**/n) { color: red; }
 fc:nth-child(  +   n+
-0) { color: red }
+0) { color: red; }
 gc:nth-child(/**/+
 
-n  +   1) { color: red }
-hc:nth-last-child(/**/+ n      +/**/2) { color: red }
+n  +   1) { color: red; }
+hc:nth-last-child(/**/+ n      +/**/2) { color: red; }
 ic:nth-last-child(  +  
-n      +10) { color: red }
-jc:nth-last-child( +   n) { color: red }
-kc:nth-last-child( +/**/  n    - 0) { color: red }
-lc:nth-last-child( +n  -       1) { color: red }
+n      +10) { color: red; }
+jc:nth-last-child( +   n) { color: red; }
+kc:nth-last-child( +/**/  n    - 0) { color: red; }
+lc:nth-last-child( +n  -       1) { color: red; }
 mc:nth-child(
-+        n-2) { color: red }
-nc:nth-last-child(+  n -10) { color: red }
++        n-2) { color: red; }
+nc:nth-last-child(+  n -10) { color: red; }
 oc:nth-child(
-+  0) { color: red }
-pc:nth-child(  +0      n) { color: red }
++  0) { color: red; }
+pc:nth-child(  +0      n) { color: red; }
 qc:nth-last-child(     +/**/0/**/n
 +
-0) { color: red }
-rc:nth-last-child(/**/+        0  n +  1) { color: red }
+0) { color: red; }
+rc:nth-last-child(/**/+        0  n +  1) { color: red; }
 sc:nth-last-child(
-+0  n/**/+2) { color: red }
++0  n/**/+2) { color: red; }
 tc:nth-child(  +       0
-n+     10) { color: red }
+n+     10) { color: red; }
 uc:nth-child(
 + 0
-n) { color: red }
+n) { color: red; }
 vc:nth-last-child(
 +      0n
 -
-0) { color: red }
-wc:nth-last-child(/**/+/**/0n  -       1) { color: red }
+0) { color: red; }
+wc:nth-last-child(/**/+/**/0n  -       1) { color: red; }
 xc:nth-child(  +
-0n     -  2) { color: red }
+0n     -  2) { color: red; }
 yc:nth-last-child(
-+  0/**/n      -/**/10) { color: red }
++  0/**/n      -/**/10) { color: red; }
 zc:nth-child(+
-1) { color: red }
+1) { color: red; }
 ad:nth-child(/**/+     1
-n) { color: red }
+n) { color: red; }
 bd:nth-last-child(+/**/1  n +
-0) { color: red }
+0) { color: red; }
 cd:nth-child(/**/+/**/1
 n      +
-1) { color: red }
+1) { color: red; }
 dd:nth-child(/**/+
-1      n  +2) { color: red }
+1      n  +2) { color: red; }
 ed:nth-child(
 +  1n +
-10) { color: red }
-fd:nth-child(  +  1 n) { color: red }
+10) { color: red; }
+fd:nth-child(  +  1 n) { color: red; }
 gd:nth-child(  +  1
-n  -0) { color: red }
-hd:nth-child(+  1n-  1) { color: red }
-id:nth-child(  +       1 n-    2) { color: red }
-jd:nth-last-child( +/**/1n  -/**/10) { color: red }
-kd:nth-last-child(  + 2) { color: red }
-ld:nth-child(/**/+     2n) { color: red }
-md:nth-last-child(  +  2 n/**/+/**/0) { color: red }
+n  -0) { color: red; }
+hd:nth-child(+  1n-  1) { color: red; }
+id:nth-child(  +       1 n-    2) { color: red; }
+jd:nth-last-child( +/**/1n  -/**/10) { color: red; }
+kd:nth-last-child(  + 2) { color: red; }
+ld:nth-child(/**/+     2n) { color: red; }
+md:nth-last-child(  +  2 n/**/+/**/0) { color: red; }
 nd:nth-child(/**/+     2
-n      +       1) { color: red }
+n      +       1) { color: red; }
 od:nth-child(  +  2  n +
-2) { color: red }
+2) { color: red; }
 pd:nth-last-child(
-+ 2/**/n  +/**/10) { color: red }
-qd:nth-last-child(+/**/2/**/n) { color: red }
-rd:nth-child(+  2  n/**/-0) { color: red }
++ 2/**/n  +/**/10) { color: red; }
+qd:nth-last-child(+/**/2/**/n) { color: red; }
+rd:nth-child(+  2  n/**/-0) { color: red; }
 sd:nth-child( +  2
-n -    1) { color: red }
+n -    1) { color: red; }
 td:nth-last-child(     +2
 n
--      2) { color: red }
+-      2) { color: red; }
 ud:nth-last-child( +  2
-n      -  10) { color: red }
-vd:nth-last-child(+  10) { color: red }
-wd:nth-child(  +10n) { color: red }
+n      -  10) { color: red; }
+vd:nth-last-child(+  10) { color: red; }
+wd:nth-child(  +10n) { color: red; }
 xd:nth-last-child(/**/+
 10
-n      +  0) { color: red }
-yd:nth-last-child(/**/+  10    n       +/**/1) { color: red }
-zd:nth-last-child(  + 10  n+   2) { color: red }
+n      +  0) { color: red; }
+yd:nth-last-child(/**/+  10    n       +/**/1) { color: red; }
+zd:nth-last-child(  + 10  n+   2) { color: red; }
 ae:nth-last-child(
-+ 10 n +/**/10) { color: red }
-be:nth-last-child(     +       10/**/n) { color: red }
-ce:nth-last-child(     + 10/**/n-  0) { color: red }
++ 10 n +/**/10) { color: red; }
+be:nth-last-child(     +       10/**/n) { color: red; }
+ce:nth-last-child(     + 10/**/n-  0) { color: red; }
 de:nth-child(+10  n-
-1) { color: red }
-ee:nth-last-child( +/**/10     n/**/-2) { color: red }
+1) { color: red; }
+ee:nth-last-child( +/**/10     n/**/-2) { color: red; }
 fe:nth-last-child(  +
-10/**/n        -10) { color: red }
+10/**/n        -10) { color: red; }
 ge:nth-last-child(
-odd/**/) { color: red }
-he:nth-last-child(/**/-   n) { color: red }
+odd/**/) { color: red; }
+he:nth-last-child(/**/-   n) { color: red; }
 ie:nth-last-child(
 - 
 n      +
-0) { color: red }
-je:nth-child(-/**/     n +  1) { color: red }
-ke:nth-last-child(/**/- n      +2) { color: red }
+0) { color: red; }
+je:nth-child(-/**/     n +  1) { color: red; }
+ke:nth-last-child(/**/- n      +2) { color: red; }
 le:nth-last-child(/**/-        n
-+  10) { color: red }
++  10) { color: red; }
 me:nth-last-child(
--/**/ n) { color: red }
+-/**/ n) { color: red; }
 ne:nth-child(
 -      n
--  0) { color: red }
-oe:nth-last-child(-    /**/n-1) { color: red }
+-  0) { color: red; }
+oe:nth-last-child(-    /**/n-1) { color: red; }
 pe:nth-child(  - 
-n - 2) { color: red }
-qe:nth-last-child(/**/-/**//**/n/**/-  10) { color: red }
-re:nth-child(  -/**/0) { color: red }
+n - 2) { color: red; }
+qe:nth-last-child(/**/-/**//**/n/**/-  10) { color: red; }
+re:nth-child(  -/**/0) { color: red; }
 se:nth-last-child(/**/-
-0 n) { color: red }
+0 n) { color: red; }
 te:nth-child(
 -      0 n+
-0) { color: red }
+0) { color: red; }
 ue:nth-child(  -
-0/**/n+/**/1) { color: red }
+0/**/n+/**/1) { color: red; }
 ve:nth-last-child(
 -/**/0 n
-+      2) { color: red }
++      2) { color: red; }
 we:nth-last-child(
--0  n/**/+ 10) { color: red }
+-0  n/**/+ 10) { color: red; }
 xe:nth-last-child(-    0
-n) { color: red }
+n) { color: red; }
 ye:nth-last-child(     -0      n
--  0) { color: red }
-ze:nth-last-child( -   0 n -/**/1) { color: red }
-af:nth-last-child(  -0/**/n    - 2) { color: red }
+-  0) { color: red; }
+ze:nth-last-child( -   0 n -/**/1) { color: red; }
+af:nth-last-child(  -0/**/n    - 2) { color: red; }
 bf:nth-child( - 0n
--10) { color: red }
-cf:nth-child(  -  1) { color: red }
+-10) { color: red; }
+cf:nth-child(  -  1) { color: red; }
 df:nth-child( -        1
-n) { color: red }
-ef:nth-last-child(/**/-1 n+  0) { color: red }
+n) { color: red; }
+ef:nth-last-child(/**/-1 n+  0) { color: red; }
 ff:nth-child(
 -/**/1  n/**/+
-1) { color: red }
+1) { color: red; }
 gf:nth-last-child(-
-1 n  + 2) { color: red }
+1 n  + 2) { color: red; }
 hf:nth-last-child(     -
 1      n
 +
-10) { color: red }
+10) { color: red; }
 if:nth-child(
--  1  n) { color: red }
-jf:nth-last-child(-  1 n - 0) { color: red }
+-  1  n) { color: red; }
+jf:nth-last-child(-  1 n - 0) { color: red; }
 kf:nth-child(-  1  n -
-1) { color: red }
-lf:nth-child(  -  1/**/n -/**/2) { color: red }
+1) { color: red; }
+lf:nth-child(  -  1/**/n -/**/2) { color: red; }
 mf:nth-last-child(  -
-1/**/n  -/**/10) { color: red }
-nf:nth-last-child(/**/-/**/2) { color: red }
-of:nth-child( -  2/**/n) { color: red }
+1/**/n  -/**/10) { color: red; }
+nf:nth-last-child(/**/-/**/2) { color: red; }
+of:nth-child( -  2/**/n) { color: red; }
 pf:nth-child(
 - 2
-n +  0) { color: red }
-qf:nth-child(  -  2 n +/**/1) { color: red }
+n +  0) { color: red; }
+qf:nth-child(  -  2 n +/**/1) { color: red; }
 rf:nth-child(/**/-     2
 n  +
-2) { color: red }
+2) { color: red; }
 sf:nth-last-child(  -/**/2/**/n
-+  10) { color: red }
-tf:nth-child(  -2 n) { color: red }
-uf:nth-child(/**/- 2n  - 0) { color: red }
-vf:nth-last-child( -2 n-1) { color: red }
-wf:nth-last-child(-  2/**/n  -  2) { color: red }
++  10) { color: red; }
+tf:nth-child(  -2 n) { color: red; }
+uf:nth-child(/**/- 2n  - 0) { color: red; }
+vf:nth-last-child( -2 n-1) { color: red; }
+wf:nth-last-child(-  2/**/n  -  2) { color: red; }
 xf:nth-child(  -2
 n-
-10) { color: red }
+10) { color: red; }
 yf:nth-child(
--10) { color: red }
-zf:nth-child(  - 10/**/n) { color: red }
+-10) { color: red; }
+zf:nth-child(  - 10/**/n) { color: red; }
 ag:nth-child(
--  10 n+       0) { color: red }
+-  10 n+       0) { color: red; }
 bg:nth-last-child(
--/**/10n/**/+1) { color: red }
-cg:nth-child(  -/**/10 n       +2) { color: red }
+-/**/10n/**/+1) { color: red; }
+cg:nth-child(  -/**/10 n       +2) { color: red; }
 dg:nth-last-child(/**/-
-10  n  +  10) { color: red }
-eg:nth-last-child(/**/- 10 n) { color: red }
-fg:nth-last-child(- 10n        -  0) { color: red }
-gg:nth-last-child(  -10n       - 1) { color: red }
-hg:nth-child(/**/- 10  n       - 2) { color: red }
+10  n  +  10) { color: red; }
+eg:nth-last-child(/**/- 10 n) { color: red; }
+fg:nth-last-child(- 10n        -  0) { color: red; }
+gg:nth-last-child(  -10n       - 1) { color: red; }
+hg:nth-child(/**/- 10  n       - 2) { color: red; }
 ig:nth-child(/**/-
-10     n -10) { color: red }
+10     n -10) { color: red; }
diff --git a/testsuite/css/parser/property-name-errors.errors 
b/testsuite/css/parser/property-name-errors.errors
index f4f3d0ce1c..175d0e1972 100644
--- a/testsuite/css/parser/property-name-errors.errors
+++ b/testsuite/css/parser/property-name-errors.errors
@@ -1,2 +1,2 @@
-property-name-errors.css:2: error: GTK_CSS_PARSER_ERROR_UNKNWON_VALUE
-property-name-errors.css:3: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+property-name-errors.css:2:3-23: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+property-name-errors.css:3:3-28: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/css/parser/pseudo-classes-unknown.errors 
b/testsuite/css/parser/pseudo-classes-unknown.errors
index 47033c3933..f675e59fb8 100644
--- a/testsuite/css/parser/pseudo-classes-unknown.errors
+++ b/testsuite/css/parser/pseudo-classes-unknown.errors
@@ -1,6 +1,6 @@
-pseudo-classes-unknown.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
-pseudo-classes-unknown.css:5: error: GTK_CSS_PARSER_ERROR_SYNTAX
-pseudo-classes-unknown.css:9: error: GTK_CSS_PARSER_ERROR_SYNTAX
-pseudo-classes-unknown.css:13: error: GTK_CSS_PARSER_ERROR_SYNTAX
-pseudo-classes-unknown.css:17: error: GTK_CSS_PARSER_ERROR_SYNTAX
-pseudo-classes-unknown.css:21: error: GTK_CSS_PARSER_ERROR_SYNTAX
+pseudo-classes-unknown.css:1:1-17: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+pseudo-classes-unknown.css:5:1-18: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+pseudo-classes-unknown.css:9:1-3: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+pseudo-classes-unknown.css:13:1-11: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+pseudo-classes-unknown.css:17:12-13: error: GTK_CSS_PARSER_ERROR_SYNTAX
+pseudo-classes-unknown.css:21:4-48: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/css/parser/radial-background-position-error.errors 
b/testsuite/css/parser/radial-background-position-error.errors
index ee197a9fa9..c3abce5255 100644
--- a/testsuite/css/parser/radial-background-position-error.errors
+++ b/testsuite/css/parser/radial-background-position-error.errors
@@ -1 +1 @@
-radial-background-position-error.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
+radial-background-position-error.css:2:34-38: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/radial-positions.errors b/testsuite/css/parser/radial-positions.errors
index 85ca87bdf2..6ddd7fb4af 100644
--- a/testsuite/css/parser/radial-positions.errors
+++ b/testsuite/css/parser/radial-positions.errors
@@ -1,3 +1,3 @@
-radial-positions.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-radial-positions.css:5: error: GTK_CSS_PARSER_ERROR_SYNTAX
-radial-positions.css:8: error: GTK_CSS_PARSER_ERROR_SYNTAX
+radial-positions.css:2:45-51: error: GTK_CSS_PARSER_ERROR_SYNTAX
+radial-positions.css:5:50-56: error: GTK_CSS_PARSER_ERROR_SYNTAX
+radial-positions.css:8:50-56: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/single-slash.errors b/testsuite/css/parser/single-slash.errors
index e282b22a46..3de2f4e8b4 100644
--- a/testsuite/css/parser/single-slash.errors
+++ b/testsuite/css/parser/single-slash.errors
@@ -1 +1 @@
-single-slash.css:1: error: GTK_CSS_PARSER_ERROR_SYNTAX
+single-slash.css:1:1-2: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/test-css-parser.c b/testsuite/css/parser/test-css-parser.c
index 6e9f3efc31..eb909583f7 100644
--- a/testsuite/css/parser/test-css-parser.c
+++ b/testsuite/css/parser/test-css-parser.c
@@ -142,16 +142,14 @@ parsing_error_cb (GtkCssProvider *provider,
                   const GError   *error,
                   GString        *errors)
 {
-  const GtkCssLocation *end_location;
-  char *basename;
+  char *section_string;
 
-  end_location = gtk_css_section_get_end_location (section);
+  section_string = gtk_css_section_to_string (section);
 
-  basename = g_file_get_basename (gtk_css_section_get_file (section));
   g_string_append_printf (errors,
-                          "%s:%zu: error: ",
-                          basename, end_location->lines + 1);
-  g_free (basename);
+                          "%s: error: ",
+                          section_string);
+  g_free (section_string);
 
   if (error->domain == GTK_CSS_PARSER_ERROR)
     append_error_value (errors, GTK_TYPE_CSS_PARSER_ERROR, error->code);
diff --git a/testsuite/css/parser/text-shadow-invalid-but-worked-in-3.12.errors 
b/testsuite/css/parser/text-shadow-invalid-but-worked-in-3.12.errors
index 31bef5177e..5635b5440a 100644
--- a/testsuite/css/parser/text-shadow-invalid-but-worked-in-3.12.errors
+++ b/testsuite/css/parser/text-shadow-invalid-but-worked-in-3.12.errors
@@ -1,2 +1,2 @@
-text-shadow-invalid-but-worked-in-3.12.css:2: error: GTK_CSS_PARSER_ERROR_SYNTAX
-text-shadow-invalid-but-worked-in-3.12.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
+text-shadow-invalid-but-worked-in-3.12.css:2:16-21: error: GTK_CSS_PARSER_ERROR_SYNTAX
+text-shadow-invalid-but-worked-in-3.12.css:6:22-23: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/css/parser/value-none.errors b/testsuite/css/parser/value-none.errors
index ac4d99a468..7ea150f1f5 100644
--- a/testsuite/css/parser/value-none.errors
+++ b/testsuite/css/parser/value-none.errors
@@ -1,31 +1,31 @@
-value-none.css:3: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:4: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:6: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:7: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:8: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:9: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:10: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:12: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:13: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:14: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:16: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:17: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:19: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:20: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:22: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:23: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:24: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:25: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:27: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:29: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:31: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:32: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:34: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:35: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:36: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:37: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:38: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:39: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:40: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:41: error: GTK_CSS_PARSER_ERROR_SYNTAX
-value-none.css:42: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:3:20-24: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:4:21-25: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:6:22-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:7:22-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:8:24-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:9:30-34: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:10:31-35: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:12:24-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:13:24-28: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:14:23-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:16:23-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:17:22-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:19:22-26: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:20:23-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:22:23-27: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:23:21-25: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:24:27-31: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:25:28-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:27:21-25: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:29:10-14: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:31:14-18: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:32:15-19: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:34:16-20: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:35:18-22: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:36:16-20: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:37:17-21: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:38:15-19: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:39:19-23: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:40:17-21: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:41:18-22: error: GTK_CSS_PARSER_ERROR_SYNTAX
+value-none.css:42:16-20: error: GTK_CSS_PARSER_ERROR_SYNTAX


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]