summaryrefslogtreecommitdiff
path: root/vala
diff options
context:
space:
mode:
author星外之神 <wszqkzqk@qq.com>2022-08-27 23:26:41 +0800
committerRico Tzschichholz <ricotz@ubuntu.com>2022-08-28 17:17:06 +0200
commit541e9f2c9dfde40b38fce32b8deb695f3eaf080b (patch)
tree98a0d3dc1c965a004b89b99aa89940d70ca728de /vala
parent2bdd828d7c5aea1d47dad76fd7bcb286c3a4ae19 (diff)
downloadvala-541e9f2c9dfde40b38fce32b8deb695f3eaf080b.tar.gz
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
Diffstat (limited to 'vala')
-rw-r--r--vala/valasourcefile.vala9
1 files changed, 8 insertions, 1 deletions
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;
+ }
}
}