From: Jürg Billeter Date: Fri, 3 Apr 2009 18:01:47 +0000 (+0200) Subject: Fix leading whitespace in preprocessing directives X-Git-Tag: 0.7.0~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b74083d62716b206da1ffb41de7ee2269b679e5;p=thirdparty%2Fvala.git Fix leading whitespace in preprocessing directives --- diff --git a/vala/valascanner.vala b/vala/valascanner.vala index 068cff797..ec9e907b0 100644 --- a/vala/valascanner.vala +++ b/vala/valascanner.vala @@ -786,7 +786,7 @@ public class Vala.Scanner { bool pp_whitespace () { bool found = false; - while (current < end && current[0] == ' ') { + while (current < end && current[0].isspace () && current[0] != '\n') { found = true; current++; column++; @@ -795,10 +795,11 @@ public class Vala.Scanner { } void pp_directive () { - do { - current++; - column++; - } while (current < end && current[0] == ' '); + // hash sign + current++; + column++; + + pp_whitespace (); char* begin = current; int len = 0; @@ -826,13 +827,16 @@ public class Vala.Scanner { bool bol = false; while (current < end) { if (bol && current[0] == '#') { + // go back to begin of line + current -= column; + column = 0; return; } if (current[0] == '\n') { line++; column = 0; bol = true; - } else if (current[0] != ' ') { + } else if (!current[0].isspace ()) { bol = false; } current++;