* Removed sprintf as source of incompatibilities

* Fixed bug
This commit is contained in:
Ladislav Zezula
2020-08-26 10:17:05 +02:00
parent c20d117942
commit f438d59c5c
6 changed files with 98 additions and 18 deletions

View File

@@ -95,11 +95,13 @@ unsigned char AsciiToUpperTable_Slash[256] =
//-----------------------------------------------------------------------------
// Safe string functions (for ANSI builds)
void StringCopy(char * szTarget, size_t cchTarget, const char * szSource)
char * StringCopy(char * szTarget, size_t cchTarget, const char * szSource)
{
size_t cchSource = 0;
if(cchTarget > 0)
{
size_t cchSource = strlen(szSource);
cchSource = strlen(szSource);
if(cchSource >= cchTarget)
cchSource = cchTarget - 1;
@@ -107,6 +109,8 @@ void StringCopy(char * szTarget, size_t cchTarget, const char * szSource)
memcpy(szTarget, szSource, cchSource);
szTarget[cchSource] = 0;
}
return szTarget + cchSource;
}
void StringCat(char * szTarget, size_t cchTargetMax, const char * szSource)
@@ -121,6 +125,26 @@ void StringCat(char * szTarget, size_t cchTargetMax, const char * szSource)
}
}
void StringCreatePseudoFileName(char * szBuffer, size_t cchMaxChars, unsigned int nIndex, const char * szExtension)
{
char * szBufferEnd = szBuffer + cchMaxChars;
// "File"
szBuffer = StringCopy(szBuffer, (szBufferEnd - szBuffer), "File");
// Number
szBuffer = IntToString(szBuffer, szBufferEnd - szBuffer + 1, nIndex, 8);
// Dot
if(szBuffer < szBufferEnd)
*szBuffer++ = '.';
// Extension
while(szExtension[0] == '.')
szExtension++;
StringCopy(szBuffer, (szBufferEnd - szBuffer), szExtension);
}
//-----------------------------------------------------------------------------
// Utility functions (UNICODE) only exist in the ANSI version of the library
// In ANSI builds, TCHAR = char, so we don't need these functions implemented