added bpy.path.basename because "//" prefix breaks os.path.basename.
authorCampbell Barton <ideasman42@gmail.com>
Wed, 20 Jul 2011 08:10:01 +0000 (08:10 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 20 Jul 2011 08:10:01 +0000 (08:10 +0000)
release/scripts/modules/bpy/path.py
release/scripts/modules/bpy_extras/image_utils.py
release/scripts/startup/bl_operators/image.py

index 74d043f8a544242e9c0053d4730be8dd7b757f94..f6254efac2e2ab89d44c3203f43e2f5a0e355b6b 100644 (file)
@@ -117,7 +117,7 @@ def display_name_from_filepath(name):
     """
     Returns the path stripped of directort and extension, ensured to be utf8 compatible.
     """
-    return _os.path.splitext(_os.path.basename(name))[0].encode("utf8", "replace").decode("utf8")
+    return _os.path.splitext(basename(name))[0].encode("utf8", "replace").decode("utf8")
 
 
 def resolve_ncase(path):
@@ -231,3 +231,12 @@ def module_names(path, recursive=False):
                         modules.append(("%s.%s" % (filename, mod_name), mod_path))
 
     return modules
+
+
+def basename(path):
+    """
+    Equivalent to os.path.basename, but skips a "//" suffix.
+
+    Use for Windows compatibility.
+    """
+    return _os.path.basename(path[2:] if path.startswith("//") else path)
index f91535a0ad4a60fd742f5437d58a8756a8d8542c..e56c1c651c449ae80531cf75d7f0256595ad6489 100644 (file)
@@ -86,7 +86,9 @@ def load_image(imagepath,
     variants = [imagepath]
 
     if dirname:
-        variants += [os.path.join(dirname, imagepath), os.path.join(dirname, os.path.basename(imagepath))]
+        variants += [os.path.join(dirname, imagepath),
+                     os.path.join(dirname, bpy.path.basename(imagepath)),
+                     ]
 
     for filepath_test in variants:
         if ncase_cmp:
@@ -99,7 +101,7 @@ def load_image(imagepath,
                 return _image_load(nfilepath)
 
     if place_holder:
-        image = bpy.data.images.new(os.path.basename(imagepath), 128, 128)
+        image = bpy.data.images.new(bpy.path.basename(imagepath), 128, 128)
         # allow the path to be resolved later
         image.filepath = imagepath
         return image
index 34c5b0d922a981b2e81dc5454aed469ca92c559d..4bb53f776baae7b305e3477010411a2a977bccd9 100644 (file)
@@ -163,7 +163,7 @@ class ProjectEdit(bpy.types.Operator):
             filepath_final = filepath + ("%.3d.%s" % (i, EXT))
             i += 1
 
-        image_new.name = os.path.basename(filepath_final)
+        image_new.name = bpy.path.basename(filepath_final)
         ProjectEdit._proj_hack[0] = image_new.name
 
         image_new.filepath_raw = filepath_final  # TODO, filepath raw is crummy