More "relpath" try/except protection...
authorBastien Montagne <montagne29@wanadoo.fr>
Sun, 18 Aug 2013 15:17:33 +0000 (15:17 +0000)
committerBastien Montagne <montagne29@wanadoo.fr>
Sun, 18 Aug 2013 15:17:33 +0000 (15:17 +0000)
release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
release/scripts/modules/bl_i18n_utils/settings.py
release/scripts/modules/bpy_extras/io_utils.py

index 3d00815b70e93dd8e8b0d29a9dabb588e3f1e72c..e9ed9a8de5b614d5858a64ee685319be97e37cd1 100644 (file)
@@ -410,9 +410,15 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
     def make_rel(path):
         for rp in root_paths:
             if path.startswith(rp):
-                return os.path.relpath(path, rp)
+                try:  # can't always find the relative path (between drive letters on windows)
+                    return os.path.relpath(path, rp)
+                except ValueError:
+                    return path
         # Use binary's dir as fallback...
-        return os.path.relpath(path, os.path.dirname(bpy.app.binary_path))
+        try:  # can't always find the relative path (between drive letters on windows)
+            return os.path.relpath(path, os.path.dirname(bpy.app.binary_path))
+        except ValueError:
+            return path
 
     # Helper function
     def extract_strings_ex(node, is_split=False):
@@ -768,7 +774,10 @@ def dump_src_messages(msgs, reports, settings):
             if os.path.splitext(fname)[1] not in settings.PYGETTEXT_ALLOWED_EXTS:
                 continue
             path = os.path.join(root, fname)
-            rel_path = os.path.relpath(path, settings.SOURCE_DIR)
+            try:  # can't always find the relative path (between drive letters on windows)
+                rel_path = os.path.relpath(path, settings.SOURCE_DIR)
+            except ValueError:
+                rel_path = path
             if rel_path in forbidden:
                 continue
             elif rel_path not in forced:
index 001f044f1c4fed015899dc0bd4c226248bf88821..e40b067f5529a49452d33b16d6240746ea3b2a1f 100644 (file)
@@ -467,9 +467,12 @@ def _do_set(ref, path):
     path = os.path.normpath(path)
     # If given path is absolute, make it relative to current ref one (else we consider it is already the case!)
     if os.path.isabs(path):
-        return os.path.relpath(path, ref)
-    else:
-        return path
+        # can't always find the relative path (between drive letters on windows)
+        try:
+            return os.path.relpath(path, ref)
+        except ValueError:
+            pass
+    return path
 
 def _gen_get_set_path(ref, name):
     def _get(self):
index eeaa64082686a85d175a9b637ff173083edf6143..790233c40aff27d2b0a86c45c36c6f00f61df885 100644 (file)
@@ -409,7 +409,10 @@ def path_reference(filepath,
     if mode == 'ABSOLUTE':
         return filepath_abs
     elif mode == 'RELATIVE':
-        return os.path.relpath(filepath_abs, base_dst)
+        try:  # can't always find the relative path (between drive letters on windows)
+            return os.path.relpath(filepath_abs, base_dst)
+        except ValueError:
+            return filepath_abs
     elif mode == 'STRIP':
         return os.path.basename(filepath_abs)