]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix error handling for character literals
authorJürg Billeter <j@bitron.ch>
Fri, 20 Aug 2010 19:19:10 +0000 (21:19 +0200)
committerJürg Billeter <j@bitron.ch>
Sat, 4 Sep 2010 14:57:26 +0000 (16:57 +0200)
vala/valacharacterliteral.vala
vala/valascanner.vala

index d368d7d01060687798fdda777d6ff1c293bee04b..91a302899cbc8454d1cc24be89040403ffbfa568 100644 (file)
@@ -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;
                        }
                }
index d5dc063d0c2146d458807802553fcebdf2dccdea..955b9a0944ce2d2abe311cac82801ce3b011507b 100644 (file)
@@ -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++;