diff options
author | 星外之神 <wszqkzqk@qq.com> | 2022-08-27 23:26:41 +0800 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-08-28 17:17:06 +0200 |
commit | 541e9f2c9dfde40b38fce32b8deb695f3eaf080b (patch) | |
tree | 98a0d3dc1c965a004b89b99aa89940d70ca728de | |
parent | 2bdd828d7c5aea1d47dad76fd7bcb286c3a4ae19 (diff) | |
download | vala-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
-rw-r--r-- | vala/valasourcefile.vala | 9 |
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; + } } } |