From: 星外之神 Date: Sat, 27 Aug 2022 15:26:41 +0000 (+0800) Subject: vala: Avoid problems with '\' in #line directives on Windows X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=541e9f2c9dfde40b38fce32b8deb695f3eaf080b;p=thirdparty%2Fvala.git vala: Avoid problems with '\' in #line directives on Windows Replace '\' with '/' in SourceFile.relative_path like in CodeContext.realpath(). F:/msys64/home/x/test/test.vala.c: In function '_vala_main': F:/msys64/home/x/test/test.vala.c:12:9: warning: unknown escape sequence: '\M' 12 | #line 3 "C:\MyFiles\test.vala" | ^~~~~~~~~~~~~~~~~~~~~~ Fixes https://gitlab.gnome.org/GNOME/vala/issues/1353 --- diff --git a/vala/valasourcefile.vala b/vala/valasourcefile.vala index 8f4175cde..c4ac064a7 100644 --- a/vala/valasourcefile.vala +++ b/vala/valasourcefile.vala @@ -33,7 +33,14 @@ public class Vala.SourceFile { public string? relative_filename { set { - this._relative_filename = value; + if (Path.DIR_SEPARATOR != '/') { + // don't use backslashes internally, + // to avoid problems in #line / #include directives + string[] components = value.split ("\\"); + _relative_filename = string.joinv ("/", components); + } else { + _relative_filename = value; + } } }