summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2020-09-18 15:06:36 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2020-09-18 15:10:24 +0800
commit95028675e877d7c4b2604f13113ac6b552f8b902 (patch)
tree65d3a3269d5d2710ca1b9cce928ae9385fc38068
parent16e48ae52be3925dc22545f16469880c168baa1c (diff)
downloadgobject-introspection-fix.win.cmd.3-38.tar.gz
gicsanner/message.py: Windows: Fix running on different drivesfix.win.cmd.3-38
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.
-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)