diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-01-07 09:50:29 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-01-07 09:50:29 +0300 |
commit | a13267463425d22f69d3d1d313df921e6c1238f9 (patch) | |
tree | 1cfe48535b793f872bf9e29a7c9a0b2f55bdae4b /source/blender/blenkernel/BKE_exotic.h | |
parent | 0db684be3cc0326d829ec3b946ca005891d720f8 (diff) |
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.
Diffstat (limited to 'source/blender/blenkernel/BKE_exotic.h')
-rw-r--r-- | source/blender/blenkernel/BKE_exotic.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_exotic.h b/source/blender/blenkernel/BKE_exotic.h index 553e62ba578..ad59cd9c0a8 100644 --- a/source/blender/blenkernel/BKE_exotic.h +++ b/source/blender/blenkernel/BKE_exotic.h @@ -42,6 +42,13 @@ struct Scene; */ int BKE_read_exotic(struct Scene *scene, const char *name); +/* return codes */ +#define BKE_READ_EXOTIC_FAIL_PATH -3 /* file format is not supported */ +#define BKE_READ_EXOTIC_FAIL_FORMAT -2 /* file format is not supported */ +#define BKE_READ_EXOTIC_FAIL_OPEN -1 /* Can't open the file */ +#define BKE_READ_EXOTIC_OK_BLEND 0 /* .blend file */ +#define BKE_READ_EXOTIC_OK_OTHER 1 /* other supported formats */ + void write_dxf(struct Scene *scene, char *str); void write_stl(struct Scene *scene, char *str); |