Md5Parser fixes
parent
6230e70d02
commit
ad18a69506
|
@ -2,7 +2,7 @@
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2022, assimp team
|
Copyright (c) 2006-2024, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2023, assimp team
|
Copyright (c) 2006-2024, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
@ -140,14 +140,14 @@ bool MD5Parser::ParseSection(Section &out) {
|
||||||
++buffer;
|
++buffer;
|
||||||
if (buffer == bufferEnd) {
|
if (buffer == bufferEnd) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
out.mName = std::string(sz, (uintptr_t)(buffer - sz));
|
out.mName = std::string(sz, (uintptr_t)(buffer - sz));
|
||||||
while (IsSpace(*buffer)) {
|
while (IsSpace(*buffer)) {
|
||||||
++buffer;
|
++buffer;
|
||||||
if (buffer == bufferEnd) {
|
if (buffer == bufferEnd) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool running = true;
|
bool running = true;
|
||||||
|
@ -157,14 +157,14 @@ bool MD5Parser::ParseSection(Section &out) {
|
||||||
++buffer;
|
++buffer;
|
||||||
if (buffer == bufferEnd) {
|
if (buffer == bufferEnd) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool run = true;
|
bool run = true;
|
||||||
while (run) {
|
while (run) {
|
||||||
while (IsSpaceOrNewLine(*buffer)) {
|
while (IsSpaceOrNewLine(*buffer)) {
|
||||||
++buffer;
|
++buffer;
|
||||||
if (buffer == bufferEnd) {
|
if (buffer == bufferEnd) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ('\0' == *buffer) {
|
if ('\0' == *buffer) {
|
||||||
return false; // seems this was the last section
|
return false; // seems this was the last section
|
||||||
|
@ -186,14 +186,14 @@ bool MD5Parser::ParseSection(Section &out) {
|
||||||
++buffer;
|
++buffer;
|
||||||
if (buffer == bufferEnd) {
|
if (buffer == bufferEnd) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (*buffer) {
|
if (*buffer) {
|
||||||
++lineNumber;
|
++lineNumber;
|
||||||
*buffer++ = '\0';
|
*buffer++ = '\0';
|
||||||
if (buffer == bufferEnd) {
|
if (buffer == bufferEnd) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -203,27 +203,25 @@ bool MD5Parser::ParseSection(Section &out) {
|
||||||
while (!IsSpaceOrNewLine(*buffer++)) {
|
while (!IsSpaceOrNewLine(*buffer++)) {
|
||||||
if (buffer == bufferEnd) {
|
if (buffer == bufferEnd) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
out.mGlobalValue = std::string(sz, (uintptr_t)(buffer - sz));
|
out.mGlobalValue = std::string(sz, (uintptr_t)(buffer - sz));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (buffer == bufferEnd)
|
if (buffer == bufferEnd) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
while (IsSpaceOrNewLine(*buffer)) {
|
while (IsSpaceOrNewLine(*buffer)) {
|
||||||
if (buffer == bufferEnd) {
|
if (buffer == bufferEnd) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
++buffer;
|
++buffer;
|
||||||
}
|
}
|
||||||
return '\0' != *buffer;
|
return '\0' != *buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
// Some dirty macros just because they're so funny and easy to debug
|
|
||||||
|
|
||||||
// skip all spaces ... handle EOL correctly
|
// skip all spaces ... handle EOL correctly
|
||||||
inline void AI_MD5_SKIP_SPACES(const char **sz, const char *bufferEnd, int linenumber) {
|
inline void AI_MD5_SKIP_SPACES(const char **sz, const char *bufferEnd, int linenumber) {
|
||||||
if (!SkipSpaces(sz, bufferEnd)) {
|
if (!SkipSpaces(sz, bufferEnd)) {
|
||||||
|
@ -256,7 +254,7 @@ inline void AI_MD5_READ_TRIPLE(aiVector3D &vec, const char **sz, const char *buf
|
||||||
inline bool AI_MD5_PARSE_STRING(const char **sz, const char *bufferEnd, aiString &out, int linenumber) {
|
inline bool AI_MD5_PARSE_STRING(const char **sz, const char *bufferEnd, aiString &out, int linenumber) {
|
||||||
bool bQuota = (**sz == '\"');
|
bool bQuota = (**sz == '\"');
|
||||||
const char *szStart = *sz;
|
const char *szStart = *sz;
|
||||||
while (!IsSpaceOrNewLine(*sz)) {
|
while (!IsSpaceOrNewLine(**sz)) {
|
||||||
++*sz;
|
++*sz;
|
||||||
if (*sz == bufferEnd) break;
|
if (*sz == bufferEnd) break;
|
||||||
}
|
}
|
||||||
|
@ -293,6 +291,7 @@ inline void AI_MD5_PARSE_STRING_IN_QUOTATION(const char **sz, const char *buffer
|
||||||
}
|
}
|
||||||
out.data[out.length] = '\0';
|
out.data[out.length] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// .MD5MESH parsing function
|
// .MD5MESH parsing function
|
||||||
MD5MeshParser::MD5MeshParser(SectionArray &mSections) {
|
MD5MeshParser::MD5MeshParser(SectionArray &mSections) {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2023, assimp team
|
Copyright (c) 2006-2024, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|
|
@ -60,8 +60,7 @@ void ReadFile(DB& db,const EXPRESS::ConversionSchema& scheme, const char* const*
|
||||||
|
|
||||||
/// @brief Helper to read a file.
|
/// @brief Helper to read a file.
|
||||||
template <size_t N, size_t N2>
|
template <size_t N, size_t N2>
|
||||||
inline
|
inline void ReadFile(DB& db,const EXPRESS::ConversionSchema& scheme, const char* const (&arr)[N], const char* const (&arr2)[N2]) {
|
||||||
void ReadFile(DB& db,const EXPRESS::ConversionSchema& scheme, const char* const (&arr)[N], const char* const (&arr2)[N2]) {
|
|
||||||
return ReadFile(db,scheme,arr,N,arr2,N2);
|
return ReadFile(db,scheme,arr,N,arr2,N2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue