[vala/staging] scanner: Accept \R and \N escape sequences in regex literals
- From: Rico Tzschichholz <ricotz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/staging] scanner: Accept \R and \N escape sequences in regex literals
- Date: Mon, 14 May 2018 07:44:30 +0000 (UTC)
commit b22d43fbdcf807b4e894ca6a502ff620d65001c6
Author: Rico Tzschichholz <ricotz ubuntu com>
Date: Mon May 14 09:31:32 2018 +0200
scanner: Accept \R and \N escape sequences in regex literals
https://bugzilla.gnome.org/show_bug.cgi?id=749576
tests/Makefile.am | 1 +
tests/parser/bug749576.vala | 29 +++++++++++++++++++++++++++++
vala/valageniescanner.vala | 2 ++
vala/valascanner.vala | 2 ++
4 files changed, 34 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1658f92..764ca19 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -456,6 +456,7 @@ TESTS = \
parser/unsupported-property-async.test \
parser/unsupported-property-throws.test \
parser/yield-method.test \
+ parser/bug749576.vala \
semantic/constant-extern.test \
semantic/constant-value.test \
semantic/constant-value-missing.test \
diff --git a/tests/parser/bug749576.vala b/tests/parser/bug749576.vala
new file mode 100644
index 0000000..8aa961a
--- /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 177f2b0..de49d9d 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 2cb7050..9af17dc 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':
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]