[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19243] trunk/blender/release/scripts/ ply_import.py: [#18388] PLY Import fails if line ending is not \n
Campbell Barton
ideasman42 at gmail.com
Tue Mar 10 07:58:43 CET 2009
Revision: 19243
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19243
Author: campbellbarton
Date: 2009-03-10 07:58:42 +0100 (Tue, 10 Mar 2009)
Log Message:
-----------
[#18388] PLY Import fails if line ending is not \n
bugfix, read the header as ascii text - open(filename, 'rU'), only the body as binary.
Modified Paths:
--------------
trunk/blender/release/scripts/ply_import.py
Modified: trunk/blender/release/scripts/ply_import.py
===================================================================
--- trunk/blender/release/scripts/ply_import.py 2009-03-09 21:17:19 UTC (rev 19242)
+++ trunk/blender/release/scripts/ply_import.py 2009-03-10 06:58:42 UTC (rev 19243)
@@ -160,13 +160,16 @@
obj_spec = object_spec()
try:
- file = open(filename, 'rb')
+ file = open(filename, 'rU') # Only for parsing the header, not binary data
signature = file.readline()
- if (signature != 'ply\n'):
+
+ if not signature.startswith('ply'):
print 'Signature line was invalid'
return None
+
while 1:
tokens = re.split(r'[ \n]+', file.readline())
+
if (len(tokens) == 0):
continue
if (tokens[0] == 'end_header'):
@@ -197,14 +200,22 @@
obj_spec.specs[-1].properties.append(property_spec(tokens[4], type_specs[tokens[2]], type_specs[tokens[3]]))
else:
obj_spec.specs[-1].properties.append(property_spec(tokens[2], None, type_specs[tokens[1]]))
+
+ if format != 'ascii':
+ file.close() # was ascii, now binary
+ file = open(filename, 'rb')
+
+ # skip the header...
+ while not file.readline().startswith('end_header'):
+ pass
+
obj = obj_spec.load(format_specs[format], file)
-
+
except IOError, (errno, strerror):
try: file.close()
except: pass
return None
-
try: file.close()
except: pass
More information about the Bf-blender-cvs
mailing list