36 if (!
STREQLEN(header_bytes,
"BLENDER", 7)) {
46 const bool is_legacy_header =
ELEM(header_bytes[7],
'_',
'-');
48 if (is_legacy_header) {
50 switch (header_bytes[7]) {
60 switch (header_bytes[8]) {
70 if (!isdigit(header_bytes[9]) || !isdigit(header_bytes[10]) || !isdigit(header_bytes[11])) {
74 memcpy(version_str, header_bytes + 9, 3);
75 version_str[3] =
'\0';
80 if (!isdigit(header_bytes[7]) || !isdigit(header_bytes[8])) {
83 char header_size_str[3];
84 memcpy(header_size_str, header_bytes + 7, 2);
85 header_size_str[2] =
'\0';
86 const int header_size = atoi(header_size_str);
94 if (readsize != remaining_bytes_to_read) {
97 if (header_bytes[9] !=
'-') {
101 if (!isdigit(header_bytes[10]) || !isdigit(header_bytes[11])) {
104 char blend_file_version_format_str[3];
105 memcpy(blend_file_version_format_str, header_bytes + 10, 2);
106 blend_file_version_format_str[2] =
'\0';
111 if (header_bytes[12] !=
'v') {
115 if (!isdigit(header_bytes[13]) || !isdigit(header_bytes[14]) || !isdigit(header_bytes[15]) ||
116 !isdigit(header_bytes[16]))
121 memcpy(version_str, header_bytes + 13, 4);
122 version_str[4] =
'\0';