snprintf replacement: fix usage of ai_snprintf when snprintf is available.

This commit is contained in:
Kim Kulling
2016-01-06 19:25:35 +01:00
parent 6bfdeb6a12
commit d43a083dc1
9 changed files with 53 additions and 45 deletions
+1 -1
View File
@@ -436,7 +436,7 @@ struct Mesh : public MeshWithSmoothingGroups<D3DS::Face>
// Generate a default name for the mesh
char szTemp[128];
::ai_snprintf(szTemp, 128, "UNNAMED_%i",iCnt++);
ai_snprintf(szTemp, 128, "UNNAMED_%i",iCnt++);
mName = szTemp;
}
+1 -1
View File
@@ -656,7 +656,7 @@ void PretransformVertices::Execute( aiScene* pScene)
{
aiNode* pcNode = *nodes = new aiNode();
pcNode->mParent = pScene->mRootNode;
pcNode->mName.length = ::sprintf(pcNode->mName.data,"light_%u",i);
pcNode->mName.length = ai_snprintf(pcNode->mName.data, MAXLEN, "light_%u",i);
pScene->mLights[i]->mName = pcNode->mName;
}
// generate camera nodes
+3 -3
View File
@@ -216,7 +216,7 @@ void SMDImporter::InternReadFile( const std::string& pFile, aiScene* pScene, IOS
void SMDImporter::LogErrorNoThrow(const char* msg)
{
char szTemp[1024];
sprintf(szTemp,"Line %u: %s",iLineNumber,msg);
ai_snprintf(szTemp,1024,"Line %u: %s",iLineNumber,msg);
DefaultLogger::get()->error(szTemp);
}
@@ -226,7 +226,7 @@ void SMDImporter::LogWarning(const char* msg)
{
char szTemp[1024];
ai_assert(strlen(msg) < 1000);
sprintf(szTemp,"Line %u: %s",iLineNumber,msg);
ai_snprintf(szTemp,1024,"Line %u: %s",iLineNumber,msg);
DefaultLogger::get()->warn(szTemp);
}
@@ -655,7 +655,7 @@ void SMDImporter::CreateOutputMaterials()
pScene->mMaterials[iMat] = pcMat;
aiString szName;
szName.length = (size_t)::sprintf(szName.data,"Texture_%u",iMat);
szName.length = (size_t)ai_snprintf(szName.data,MAXLEN,"Texture_%u",iMat);
pcMat->AddProperty(&szName,AI_MATKEY_NAME);
if (aszTextures[iMat].length())
+16 -13
View File
@@ -44,7 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <string.h>
#include <stdio.h>
namespace Assimp {
//namespace Assimp {
/// @fn ai_snprintf
/// @brief The portable version of the function snprintf ( C99 standard ), which works on visual studio compilers 2013 and earlier.
@@ -53,7 +53,7 @@ namespace Assimp {
/// @param format The format string
/// @param ap The additional arguments.
/// @return The number of written characters if the buffer size was big enough. If an encoding error occurs, a negative number is returned.
#if defined(_MSC_VER) && _MSC_VER < 1900
//#if defined(_MSC_VER) && _MSC_VER < 1900
inline int c99_ai_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap) {
int count(-1);
@@ -67,32 +67,35 @@ namespace Assimp {
return count;
}
inline int ai_snprintf(char *s, size_t n, const char *fmt, ...) {
#if defined(_MSC_VER) && _MSC_VER < 1900
inline int ai_snprintf(char *outBuf, size_t size, const char *format, ...) {
int count;
va_list ap;
va_start(ap, fmt);
count = c99_ai_vsnprintf(outBuf, size, fmt, ap);
va_start(ap, format);
count = c99_ai_vsnprintf(outBuf, size, format, ap);
va_end(ap);
return count;
}
#else
inline int ai_snprintf(char *s, size_t n, const char *format, ...) {
#define ai_snprintf snprintf
/*inline int ai_snprintf(char *outBuf, size_t size, const char *format, ...) {
int count;
va_list ap;
va_start(ap, format);
count = snprintf(s, n, format, ap);
va_end(ap);
va_list args;
va_start(args, format);
count = c99_ai_vsnprintf(outBuf, size, format, args);
// count = ::snprintf(outBuf, size, format, args);
va_end(args);
return count;
}
}*/
#endif
} // Namespace Assimp
//} // Namespace Assimp
#endif // INCLUDED_AI_STRINGUTILS_H
+4 -4
View File
@@ -842,7 +842,7 @@ inline void AssetMetadata::Read(Document& doc)
if (version != 1) {
char msg[128];
Assimp::ai_snprintf(msg, 128, "Unsupported glTF version: %d", version);
ai_snprintf(msg, 128, "Unsupported glTF version: %d", version);
throw DeadlyImportError(msg);
}
}
@@ -925,7 +925,7 @@ inline void Asset::Load(const std::string& pFile, bool isBinary)
if (doc.HasParseError()) {
char buffer[32];
Assimp::ai_snprintf(buffer, 32, "%d", static_cast<int>(doc.GetErrorOffset()));
ai_snprintf(buffer, 32, "%d", static_cast<int>(doc.GetErrorOffset()));
throw DeadlyImportError(std::string("JSON parse error, offset ") + buffer + ": "
+ GetParseError_En(doc.GetParseError()));
}
@@ -1029,9 +1029,9 @@ inline std::string Asset::FindUniqueID(const std::string& str, const char* suffi
if (it == mUsedIds.end()) break;
char buffer[256];
int offset = Assimp::ai_snprintf(buffer, 256, "%s_", id.c_str());
int offset = ai_snprintf(buffer, 256, "%s_", id.c_str());
for (int i = 0; it != mUsedIds.end(); ++i) {
Assimp::ai_snprintf(buffer + offset, 256, "%d", i);
ai_snprintf(buffer + offset, 256, "%d", i);
id = buffer;
it = mUsedIds.find(id);
+1 -1
View File
@@ -190,7 +190,7 @@ namespace glTF {
else {
for (size_t i = 0; i < lst.size(); ++i) {
char buffer[32];
Assimp::ai_snprintf(buffer, 32, "%s_%d", semantic, int(i));
ai_snprintf(buffer, 32, "%s_%d", semantic, int(i));
attrs.AddMember(Value(buffer, w.mAl).Move(), Value(lst[i]->id, w.mAl).Move(), w.mAl);
}
}