summaryrefslogtreecommitdiff
path: root/giscanner
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2020-09-18 15:06:36 +0800
committerChristoph Reiter <reiter.christoph@gmail.com>2020-09-26 12:20:48 +0200
commit0de9608f6f23fc837122fdf52528774ae47acc25 (patch)
tree8d8d82b875d25d9b4eaf44f63a91ee136095c29d /giscanner
parent5a673c1067b779bfbb4632a76340e0fa19305b58 (diff)
downloadgobject-introspection-0de9608f6f23fc837122fdf52528774ae47acc25.tar.gz
gicsanner/message.py: Windows: Fix running on different drives
os.path.relpath() will throw a ValueError when the two paths that are fed to it are on different drives, at least when running under cmd.exe consoles. Fix this by falling back to the full path when this ValueError is thrown.
Diffstat (limited to 'giscanner')
-rw-r--r--giscanner/message.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/giscanner/message.py b/giscanner/message.py
index 9057c23c..24f1b7df 100644
--- a/giscanner/message.py
+++ b/giscanner/message.py
@@ -75,8 +75,14 @@ class Position(object):
self.column or -1)
def format(self, cwd):
- filename = os.path.relpath(os.path.realpath(self.filename),
- os.path.realpath(cwd))
+ # Windows: We may be using different drives self.filename and cwd,
+ # which leads to a ValuError when using os.path.relpath().
+ # In that case, just use the entire path of self.filename
+ try:
+ filename = os.path.relpath(os.path.realpath(self.filename),
+ os.path.realpath(cwd))
+ except ValueError:
+ filename = os.path.realpath(self.filename)
if self.column is not None:
return '%s:%d:%d' % (filename, self.line, self.column)