Commit: 22656289644a72add3e414063252251949afc24e Author: Campbell Barton Date: Tue Mar 29 18:22:35 2016 +1100 Branches: blender-v2.77-release https://developer.blender.org/rB22656289644a72add3e414063252251949afc24e
Fix T47986: OBJ Import fails w/ imagepath encoding =================================================================== M release/scripts/modules/bpy/path.py M release/scripts/modules/bpy_extras/image_utils.py =================================================================== diff --git a/release/scripts/modules/bpy/path.py b/release/scripts/modules/bpy/path.py index 99c46e4..30f6c8e 100644 --- a/release/scripts/modules/bpy/path.py +++ b/release/scripts/modules/bpy/path.py @@ -35,6 +35,7 @@ __all__ = ( "extensions_audio", "is_subdir", "module_names", + "native_pathsep", "reduce_dirs", "relpath", "resolve_ncase", @@ -349,6 +350,28 @@ def basename(path): return _os.path.basename(path[2:] if path[:2] in {"//", b"//"} else path) +def native_pathsep(path): + """ + Replace the path separator with the systems native ``os.sep``. + """ + if type(path) is str: + if _os.sep == "/": + return path.replace("\\", "/") + else: + if path.startswith("//"): + return "//" + path[2:].replace("/", "\\") + else: + return path.replace("/", "\\") + else: # bytes + if _os.sep == "/": + return path.replace(b"\\", b"/") + else: + if path.startswith(b"//"): + return b"//" + path[2:].replace(b"/", b"\\") + else: + return path.replace(b"/", b"\\") + + def reduce_dirs(dirs): """ Given a sequence of directories, remove duplicates and diff --git a/release/scripts/modules/bpy_extras/image_utils.py b/release/scripts/modules/bpy_extras/image_utils.py index d078d63..f772aab 100644 --- a/release/scripts/modules/bpy_extras/image_utils.py +++ b/release/scripts/modules/bpy_extras/image_utils.py @@ -80,9 +80,12 @@ def load_image(imagepath, # Utility Functions def _image_load_placeholder(path): - name = bpy.path.basename(path) - if type(name) == bytes: - name = name.decode("utf-8", "replace") + name = path + if type(path) is str: + name = name.encode("utf-8", "replace") + name = name.decode("utf-8", "replace") + name = os.path.basename(name) + image = bpy.data.images.new(name, 128, 128) # allow the path to be resolved later image.filepath = path @@ -147,6 +150,8 @@ def load_image(imagepath, # ------------------------------------------------------------------------- + imagepath = bpy.path.native_pathsep(imagepath) + if verbose: print("load_image('%s', '%s', ...)" % (imagepath, dirname)) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs