patch [#25490] Fix for [#22096] Blender tries to open non-blend file
authorCampbell Barton <ideasman42@gmail.com>
Fri, 7 Jan 2011 06:50:29 +0000 (06:50 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 7 Jan 2011 06:50:29 +0000 (06:50 +0000)
commita13267463425d22f69d3d1d313df921e6c1238f9
tree1cfe48535b793f872bf9e29a7c9a0b2f55bdae4b
parent0db684be3cc0326d829ec3b946ca005891d720f8
patch [#25490] Fix for [#22096] Blender tries to open non-blend file
from Alexander Kuznetsov (alexk) with edits.

From the report:
Blender assumed that all files are .blend as retval = 0;

Now retval is initialized as file cannot be open (-1) for gzopen fail and directory case
retval = -2; is defined for not supported formats
This must be assigned before #ifdef WITH_PYTHON because this part can be missing
Finally retval = 0; if it is a .blend file

---
also made other edits.

- exotic.c's blend header checking was sloppy, didn't check data was actually read, only checked first 4 bytes and had a check for "blend.gz" extension which is unnecessary.
- use defines to help readability for BKE_read_exotic & BKE_read_file return values.
- no need to check for a NULL pointer before calling BKE_reportf(). (will just print to the console)
- print better reports when the file fails to load.
source/blender/blenkernel/BKE_blender.h
source/blender/blenkernel/BKE_exotic.h
source/blender/blenkernel/BKE_utildefines.h
source/blender/blenkernel/intern/blender.c
source/blender/blenkernel/intern/exotic.c
source/blender/windowmanager/intern/wm_files.c
source/creator/creator.c