diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py index 79d2b15eecc73cb862703b30bf4f7587e18ab889..bb8f5318d0b4e3a2d0bf0a74f187df0a4247fbee 100644 --- a/testsuite/driver/testlib.py +++ b/testsuite/driver/testlib.py @@ -2598,8 +2598,9 @@ def normalise_errmsg(s: str) -> str: s = normalise_callstacks(s) s = normalise_type_reps(s) - # normalise slashes, minimise Windows/Unix filename differences - s = re.sub(r'\\', '/', s) + # normalise slashes to minimise Windows/Unix filename differences, + # but don't normalize backslashes in chars + s = re.sub(r"(?!')\\", '/', s) # Normalize the name of the GHC executable. Specifically, # this catches the cases that: diff --git a/testsuite/tests/parser/should_fail/T21843a.stderr b/testsuite/tests/parser/should_fail/T21843a.stderr index 11ad47d94a982e8392995c39a6c0b09500fc31e1..43428042f09c58fcd30fc0ed66a7d6912f090d96 100644 --- a/testsuite/tests/parser/should_fail/T21843a.stderr +++ b/testsuite/tests/parser/should_fail/T21843a.stderr @@ -1,4 +1,4 @@ T21843a.hs:3:13: [GHC-31623] - Unicode character '“' ('/8220') looks like '"' (Quotation Mark), but it is not + Unicode character '“' ('\8220') looks like '"' (Quotation Mark), but it is not diff --git a/testsuite/tests/parser/should_fail/T21843b.stderr b/testsuite/tests/parser/should_fail/T21843b.stderr index 34c531c3f814d6cae95c376dee51e7e751d2bbcc..535f1b789b02ca771bc618d36006c260858185f7 100644 --- a/testsuite/tests/parser/should_fail/T21843b.stderr +++ b/testsuite/tests/parser/should_fail/T21843b.stderr @@ -1,3 +1,3 @@ T21843b.hs:3:11: [GHC-31623] - Unicode character '‘' ('/8216') looks like ''' (Single Quote), but it is not + Unicode character '‘' ('\8216') looks like ''' (Single Quote), but it is not diff --git a/testsuite/tests/parser/should_fail/T21843c.stderr b/testsuite/tests/parser/should_fail/T21843c.stderr index 54146a42ebbd13e163e152ef09231d563e50ecaa..ea832cb3e4154280891ac900452d295f41dce4ca 100644 --- a/testsuite/tests/parser/should_fail/T21843c.stderr +++ b/testsuite/tests/parser/should_fail/T21843c.stderr @@ -1,6 +1,6 @@ T21843c.hs:3:19: [GHC-31623] - Unicode character 'â€' ('/8221') looks like '"' (Quotation Mark), but it is not + Unicode character 'â€' ('\8221') looks like '"' (Quotation Mark), but it is not T21843c.hs:3:20: [GHC-21231] - lexical error in string/character literal at character '/n' + lexical error in string/character literal at character '\n' diff --git a/testsuite/tests/parser/should_fail/T21843d.stderr b/testsuite/tests/parser/should_fail/T21843d.stderr index 4ee47ed8ef23d8c58ccb33f17ff053da0a6f9cd0..995bbf8c210c5cd09a7f8dd0b52978114e895d94 100644 --- a/testsuite/tests/parser/should_fail/T21843d.stderr +++ b/testsuite/tests/parser/should_fail/T21843d.stderr @@ -1,3 +1,3 @@ T21843d.hs:3:13: [GHC-31623] - Unicode character '’' ('/8217') looks like ''' (Single Quote), but it is not + Unicode character '’' ('\8217') looks like ''' (Single Quote), but it is not diff --git a/testsuite/tests/parser/should_fail/T21843e.stderr b/testsuite/tests/parser/should_fail/T21843e.stderr index c39d573b877c4afac3cb26e7239e34b5408e3748..12877123e77cfc7ec4f323aa1c23bddc2acddf95 100644 --- a/testsuite/tests/parser/should_fail/T21843e.stderr +++ b/testsuite/tests/parser/should_fail/T21843e.stderr @@ -1,3 +1,3 @@ T21843e.hs:3:15: [GHC-31623] - Unicode character 'â€' ('/8221') looks like '"' (Quotation Mark), but it is not + Unicode character 'â€' ('\8221') looks like '"' (Quotation Mark), but it is not diff --git a/testsuite/tests/parser/should_fail/T21843f.stderr b/testsuite/tests/parser/should_fail/T21843f.stderr index 198917937a5494cc989735c15fa66256c56d59a6..6cd989f67900db61f37a0ab0b70d8396f5872f30 100644 --- a/testsuite/tests/parser/should_fail/T21843f.stderr +++ b/testsuite/tests/parser/should_fail/T21843f.stderr @@ -1,3 +1,3 @@ T21843f.hs:3:13: [GHC-31623] - Unicode character '‘' ('/8216') looks like ''' (Single Quote), but it is not + Unicode character '‘' ('\8216') looks like ''' (Single Quote), but it is not