diff options
author | Jonas Ã…dahl <jadahl@gmail.com> | 2018-11-08 18:26:29 +0100 |
---|---|---|
committer | Christoph Reiter <reiter.christoph@gmail.com> | 2018-11-08 18:06:22 +0000 |
commit | 886d36d65f3bcd30ddc23005e378c0fb4d295e21 (patch) | |
tree | 55c51f1163a5b3ef8af3e943811ca737724a9816 | |
parent | b5b25328b75ad97836f585f708b60d8fc6bca902 (diff) | |
download | gobject-introspection-886d36d65f3bcd30ddc23005e378c0fb4d295e21.tar.gz |
giscanner: Print relative filename paths when warning
g-ir-scanner would cut away the 'common prefix' between the current
working directory and the file about be warned about. This is
problematic when using automatic jumping to warnings and errors, as it'd
mean the editor can't find the relevant file.
For example, if g-ir-scanner is run from 'build/', and a warning occurs
on a file in 'src/file.c', the scanner would print the warning
'src/file.c:123: Warning: This and that'. Running this from e.g. meson
would mean e.g. VIM would not find the correct file to jump to.
Meanwhile, GCC, in the same setup, would print '../src/file.c:123:
Warning: ...', as that is the relative path from where the scanner is
ran, and e.g. VIM would behave in a correct way.
-rw-r--r-- | giscanner/message.py | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/giscanner/message.py b/giscanner/message.py index 02377896..f20578f3 100644 --- a/giscanner/message.py +++ b/giscanner/message.py @@ -80,11 +80,8 @@ class Position(object): self.column or -1) def format(self, cwd): - filename = os.path.realpath(self.filename) - cwd = os.path.realpath(cwd) - common_prefix = os.path.commonprefix((filename, cwd)) - if common_prefix: - filename = os.path.relpath(filename, common_prefix) + filename = os.path.relpath(os.path.realpath(self.filename), + os.path.realpath(cwd)) if self.column is not None: return '%s:%d:%d' % (filename, self.line, self.column) |