summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authortruelight <truelight@openttd.org>2006-08-24 12:08:25 +0000
committertruelight <truelight@openttd.org>2006-08-24 12:08:25 +0000
commitbe345323f6053166c0320925fc2a44b24219dbf5 (patch)
tree90e4385ba5c5f0ec5803661e46a5dbdf086057c6 /string.c
parent5540485fd88ad8b23341b6aa89221432061a2459 (diff)
downloadopenttd-be345323f6053166c0320925fc2a44b24219dbf5.tar.xz
(svn r6089) -Backport r6088: added -s (source) and -d (destination) to strgen (Darkvater)
Diffstat (limited to 'string.c')
-rw-r--r--string.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/string.c b/string.c
index bbf8627d3..a0e6b42a6 100644
--- a/string.c
+++ b/string.c
@@ -52,7 +52,7 @@ char* CDECL str_fmt(const char* str, ...)
char* p;
va_start(va, str);
- len = vsprintf(buf, str, va);
+ len = vsnprintf(buf, lengthof(buf), str, va);
va_end(va);
p = malloc(len + 1);
if (p != NULL) memcpy(p, buf, len + 1);
@@ -101,3 +101,27 @@ void strtolower(char *str)
{
for (; *str != '\0'; str++) *str = tolower(*str);
}
+
+#ifdef WIN32
+int CDECL snprintf(char *str, size_t size, const char *format, ...)
+{
+ va_list ap;
+ int ret;
+
+ va_start(ap, format);
+ ret = vsnprintf(str, size, format, ap);
+ va_end(ap);
+ return ret;
+}
+
+#ifdef _MSC_VER
+int CDECL vsnprintf(char *str, size_t size, const char *format, va_list ap)
+{
+ int ret;
+ ret = _vsnprintf(str, size, format, ap);
+ if (ret < 0) str[size - 1] = '\0';
+ return ret;
+}
+#endif /* _MSC_VER */
+
+#endif /* WIN32 */