From: Jürg Billeter Date: Fri, 20 Aug 2010 19:19:10 +0000 (+0200) Subject: Fix error handling for character literals X-Git-Tag: 0.9.8~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a0afab0a32d3626994709c40cc0c176089b5140;p=thirdparty%2Fvala.git Fix error handling for character literals --- 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++;