From 676703bb967348819edd613d1de416f89a8a9441 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Fri, 20 Aug 2010 21:19:10 +0200 Subject: [PATCH] Fix error handling for character literals --- vala/valacharacterliteral.vala | 2 +- vala/valascanner.vala | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/vala/valacharacterliteral.vala b/vala/valacharacterliteral.vala index d368d7d01..91a302899 100644 --- a/vala/valacharacterliteral.vala +++ b/vala/valacharacterliteral.vala @@ -38,7 +38,7 @@ public class Vala.CharacterLiteral : Literal { set { _value = value; - if (!value.validate () || (value.length != 3 && value.next_char ().get_char () != '\\')) { + if (!value.validate ()) { error = true; } } diff --git a/vala/valascanner.vala b/vala/valascanner.vala index d5dc063d0..955b9a094 100644 --- a/vala/valascanner.vala +++ b/vala/valascanner.vala @@ -1156,6 +1156,10 @@ public class Vala.Scanner { Report.error (new SourceReference (source_file, line, column + token_length_in_chars, line, column + token_length_in_chars), "invalid UTF-8 character"); } } + if (current < end && begin[0] == '\'' && current[0] != '\'') { + // multiple characters in single character literal + Report.error (new SourceReference (source_file, line, column + token_length_in_chars, line, column + token_length_in_chars), "invalid character literal"); + } } if (current < end) { current++; -- 2.47.3