Commit 2bfc416e authored by bitplane's avatar bitplane

fix for Cyberware / cyslice / headus 3D tools PLY files with multiple spaces between words

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2257 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 96658e45
...@@ -229,6 +229,8 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file) ...@@ -229,6 +229,8 @@ IAnimatedMesh* CPLYMeshFileLoader::createMesh(io::IReadFile* file)
{ {
// create a mesh buffer // create a mesh buffer
CDynamicMeshBuffer *mb = new CDynamicMeshBuffer(video::EVT_STANDARD, vertCount > 65565 ? video::EIT_32BIT : video::EIT_16BIT); CDynamicMeshBuffer *mb = new CDynamicMeshBuffer(video::EVT_STANDARD, vertCount > 65565 ? video::EIT_32BIT : video::EIT_16BIT);
mb->getVertexBuffer().reallocate(vertCount);
mb->getIndexBuffer().reallocate(vertCount);
mb->setHardwareMappingHint(EHM_STATIC); mb->setHardwareMappingHint(EHM_STATIC);
// loop through each of the elements // loop through each of the elements
...@@ -614,8 +616,13 @@ c8* CPLYMeshFileLoader::getNextWord() ...@@ -614,8 +616,13 @@ c8* CPLYMeshFileLoader::getNextWord()
while (*pos && pos < LineEndPointer && pos < EndPointer && *pos != ' ' && *pos != '\t') while (*pos && pos < LineEndPointer && pos < EndPointer && *pos != ' ' && *pos != '\t')
++pos; ++pos;
// null terminate the string in place while(*pos && pos < LineEndPointer && pos < EndPointer && (*pos == ' ' || *pos == '\t') )
*pos = '\0'; {
// null terminate the string in place
*pos = '\0';
++pos;
}
--pos;
WordLength = pos-StartPointer; WordLength = pos-StartPointer;
// return pointer to the start of the word // return pointer to the start of the word
return StartPointer; return StartPointer;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment