[Bf-python] Blender.Save() complaints for paths longer than 80

Dietrich Bollmann diresu at web.de
Wed Aug 1 11:25:11 CEST 2007


Hi,

When trying to save a blender file with 'Blender.Save()' an error is
printed for filenames longer than 80.  As FILE_MAXDIR is defined as
160 and FILE_MAXFILE as 80 I suppose this is a bug?

Example:

                   >         1         2         3         4         5
6         7         8

>12345678901234567890123456789012345678901234567890123456789012345678901234567890
  >>> filename80 =
'/home/dietrich/67890123456789012345678901234567890123456789012345678901234.blend'
  >>> filename81 =
'/home/dietrich/678901234567890123456789012345678901234567890123456789012345.blend'
  >>> len(filename80)
  80
  >>> len(filename81)
  81
  >>> Blender.Save(filename80, True)
  >>> Blender.Save(filename81, True)
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  AttributeError: filename is too long!
  >>> 

The code is in blender/source/blender/python/api2_2x/Blender.c :

  static PyObject *Blender_Save( PyObject * self, PyObject * args )
  {
  	...snip...
  
  	len = strlen( fname );
  
  	if( len > FILE_MAXFILE )
  		return EXPP_ReturnPyObjError( PyExc_AttributeError,
  					      "filename is too long!" );
  	...snip...
  }

and probably rather should read:

  static PyObject *Blender_Save( PyObject * self, PyObject * args )
  {
  	...snip...
  
  	len = strlen( fname );
  
  	if( len > (FILE_MAXDIR + FILE_MAXFILE) )
  		return EXPP_ReturnPyObjError( PyExc_AttributeError,
  					      "filename is too long!" );
  	...snip...
  }

Thank you :) 

Dietrich






More information about the Bf-python mailing list