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
commit76bcaba6011b4a3a3f2c3dcd65e3438bb46b79f0 (patch)
tree90e4385ba5c5f0ec5803661e46a5dbdf086057c6 /string.c
parentd14ac4478d35f7ae9b7ced6e78673a27a85fc878 (diff)
downloadopenttd-76bcaba6011b4a3a3f2c3dcd65e3438bb46b79f0.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 */