aboutsummaryrefslogtreecommitdiff
path: root/src/SBaseCommon.cpp
diff options
context:
space:
mode:
authorLadislav Zezula <zezula@volny.cz>2020-08-26 10:17:05 +0200
committerLadislav Zezula <zezula@volny.cz>2020-08-26 10:17:05 +0200
commitf438d59c5c10c9d2308ac1bfaff8da54bdbb8c4f (patch)
treea8e531af5191cbd428a538805392b62002de8124 /src/SBaseCommon.cpp
parentc20d117942a324b97ee5e326f6630ecf0f6d5a23 (diff)
* Removed sprintf as source of incompatibilities
* Fixed bug
Diffstat (limited to 'src/SBaseCommon.cpp')
-rw-r--r--src/SBaseCommon.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/SBaseCommon.cpp b/src/SBaseCommon.cpp
index 61e7bdb..fc80dee 100644
--- a/src/SBaseCommon.cpp
+++ b/src/SBaseCommon.cpp
@@ -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