diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2018-05-14 09:31:32 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2018-05-21 21:13:48 +0200 |
commit | 974d126fd7a2aaa72cc9dee0f6c3a153c3218d17 (patch) | |
tree | 8ff4ab5a91d1ba8c257490ee3f638af9f3175ac4 | |
parent | d21ba22e0f36230df1b454191ce4aa57b451f382 (diff) | |
download | vala-974d126fd7a2aaa72cc9dee0f6c3a153c3218d17.tar.gz |
scanner: Accept \R and \N escape sequences in regex literals
https://bugzilla.gnome.org/show_bug.cgi?id=749576
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/parser/bug749576.vala | 29 | ||||
-rw-r--r-- | vala/valageniescanner.vala | 2 | ||||
-rw-r--r-- | vala/valascanner.vala | 2 |
4 files changed, 34 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 8bdd1d754..f27cd25a6 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -268,6 +268,7 @@ TESTS = \ gir/bug742012.test \ gir/bug788775.test \ gir/delegate-alias-without-target.test \ + parser/bug749576.vala \ $(NULL) NON_NULL_TESTS = \ diff --git a/tests/parser/bug749576.vala b/tests/parser/bug749576.vala new file mode 100644 index 000000000..8aa961af0 --- /dev/null +++ b/tests/parser/bug749576.vala @@ -0,0 +1,29 @@ +void main() { + unowned string a = "first line\nnext line"; + unowned string b = "first line\rnext line"; + unowned string c = "first \tline\r\nnext \tline"; + + assert (/\Rnext/.match (a)); + assert (/\Rnext/.match (b)); + assert (/\Rnext/.match (c)); + + try { + var r = new Regex ("\\Rnext"); + assert (r.match (a)); + + var r2 = new Regex ("""\Rnext"""); + assert (r2.match (a)); + } catch { + } + + assert (/\Nline/.match (c)); + + try { + var r = new Regex ("\\Nline"); + assert (r.match (c)); + + var r2 = new Regex ("""\Nline"""); + assert (r2.match (c)); + } catch { + } +} diff --git a/vala/valageniescanner.vala b/vala/valageniescanner.vala index 95a89842d..8de367c36 100644 --- a/vala/valageniescanner.vala +++ b/vala/valageniescanner.vala @@ -208,7 +208,9 @@ public class Vala.Genie.Scanner { case 'B': case 'f': case 'n': + case 'N': case 'r': + case 'R': case 't': case 'a': case 'A': diff --git a/vala/valascanner.vala b/vala/valascanner.vala index 8b50a59d4..7c4c75c0c 100644 --- a/vala/valascanner.vala +++ b/vala/valascanner.vala @@ -193,7 +193,9 @@ public class Vala.Scanner { case 'B': case 'f': case 'n': + case 'N': case 'r': + case 'R': case 't': case 'v': case 'a': |