diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2013-08-18 19:17:33 +0400 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2013-08-18 19:17:33 +0400 |
commit | a567dd20c0a1ecfd690af40474640b8a3d9afa50 (patch) | |
tree | e88f4d835a411ebedd3a0db8bbf0085d61fb3dec | |
parent | c5e14f62a673507a6298bf9f676f6de11d193f07 (diff) |
More "relpath" try/except protection...
-rw-r--r-- | release/scripts/modules/bl_i18n_utils/bl_extract_messages.py | 15 | ||||
-rw-r--r-- | release/scripts/modules/bl_i18n_utils/settings.py | 9 | ||||
-rw-r--r-- | release/scripts/modules/bpy_extras/io_utils.py | 5 |
3 files changed, 22 insertions, 7 deletions
diff --git a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py index 3d00815b70e..e9ed9a8de5b 100644 --- a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py +++ b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py @@ -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: diff --git a/release/scripts/modules/bl_i18n_utils/settings.py b/release/scripts/modules/bl_i18n_utils/settings.py index 001f044f1c4..e40b067f552 100644 --- a/release/scripts/modules/bl_i18n_utils/settings.py +++ b/release/scripts/modules/bl_i18n_utils/settings.py @@ -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): diff --git a/release/scripts/modules/bpy_extras/io_utils.py b/release/scripts/modules/bpy_extras/io_utils.py index eeaa6408268..790233c40af 100644 --- a/release/scripts/modules/bpy_extras/io_utils.py +++ b/release/scripts/modules/bpy_extras/io_utils.py @@ -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) |