/* intended to check for non-blender formats but for now it only reads blends */ static int wm_read_exotic(const char *name) { int len; gzFile gzfile; char header[7]; int retval; /* make sure we're not trying to read a directory.... */ len = strlen(name); if (len > 0 && ELEM(name[len - 1], '/', '\\')) { retval = BKE_READ_EXOTIC_FAIL_PATH; } else { gzfile = BLI_gzopen(name, "rb"); if (gzfile == NULL) { retval = BKE_READ_EXOTIC_FAIL_OPEN; } else { len = gzread(gzfile, header, sizeof(header)); gzclose(gzfile); if (len == sizeof(header) && STREQLEN(header, "BLENDER", 7)) { retval = BKE_READ_EXOTIC_OK_BLEND; } else { #if 0 /* historic stuff - no longer used */ WM_cursor_wait(true); if (is_foo_format(name)) { read_foo(name); retval = BKE_READ_EXOTIC_OK_OTHER; } else #endif { retval = BKE_READ_EXOTIC_FAIL_FORMAT; } #if 0 WM_cursor_wait(false); #endif } } } return retval; }
/* intended to check for non-blender formats but for now it only reads blends */ static int wm_read_exotic(Scene *UNUSED(scene), const char *name) { int len; gzFile gzfile; char header[7]; int retval; // make sure we're not trying to read a directory.... len = strlen(name); if (ELEM(name[len - 1], '/', '\\')) { retval = BKE_READ_EXOTIC_FAIL_PATH; } else { gzfile = BLI_gzopen(name, "rb"); if (gzfile == NULL) { retval = BKE_READ_EXOTIC_FAIL_OPEN; } else { len = gzread(gzfile, header, sizeof(header)); gzclose(gzfile); if (len == sizeof(header) && strncmp(header, "BLENDER", 7) == 0) { retval = BKE_READ_EXOTIC_OK_BLEND; } else { //XXX waitcursor(1); #if 0 /* historic stuff - no longer used */ if (is_foo_format(name)) { read_foo(name); retval = BKE_READ_EXOTIC_OK_OTHER; } else #endif { retval = BKE_READ_EXOTIC_FAIL_FORMAT; } //XXX waitcursor(0); } } } return retval; }