[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1454] trunk/py/scripts/addons/ io_scene_3ds/export_3ds.py: unique name exporting was broken, needed to export bytes.
Campbell Barton
ideasman42 at gmail.com
Thu Jan 20 10:32:59 CET 2011
Revision: 1454
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=1454
Author: campbellbarton
Date: 2011-01-20 09:32:59 +0000 (Thu, 20 Jan 2011)
Log Message:
-----------
unique name exporting was broken, needed to export bytes.
Modified Paths:
--------------
trunk/py/scripts/addons/io_scene_3ds/export_3ds.py
Modified: trunk/py/scripts/addons/io_scene_3ds/export_3ds.py
===================================================================
--- trunk/py/scripts/addons/io_scene_3ds/export_3ds.py 2011-01-20 09:04:36 UTC (rev 1453)
+++ trunk/py/scripts/addons/io_scene_3ds/export_3ds.py 2011-01-20 09:32:59 UTC (rev 1454)
@@ -89,23 +89,24 @@
# So 3ds max can open files, limit names to 12 in length
# this is verry annoying for filenames!
-name_unique = []
-name_mapping = {}
+name_unique = [] # stores str, ascii only
+name_mapping = {} # stores {orig: byte} mapping
def sane_name(name):
name_fixed = name_mapping.get(name)
if name_fixed is not None:
return name_fixed
- new_name = name[:12]
-
+ # strip non ascii chars
+ new_name_clean = new_name = name.encode("ASCII", "replace").decode("ASCII")[:12]
i = 0
while new_name in name_unique:
- new_name = new_name[:-4] + '.%.3d' % i
+ new_name = new_name_clean + ".%.3d" % i
i+=1
+ # note, appending the 'str' version.
name_unique.append(new_name)
- name_mapping[name] = new_name
+ name_mapping[name] = new_name = new_name.encode("ASCII", "replace")
return new_name
def uv_key(uv):
@@ -167,7 +168,8 @@
'''Class representing a zero-terminated string for a 3ds file.'''
__slots__ = ('value', )
def __init__(self, val):
- self.value=val
+ assert(type(val) == bytes)
+ self.value = val
def get_size(self):
return (len(self.value)+1)
More information about the Bf-extensions-cvs
mailing list