changeset 7257:0cbe7df2b293 draft

(svn r10566) -Fix [FS#1025]: a NewGRF could have a information message that is too long for the internal buffers to handle. We should not crash on such a case even though the message is too big for the window anyway.
author rubidium <rubidium@openttd.org>
date Sat, 14 Jul 2007 22:37:40 +0000
parents 7843e26f5f1d
children 6c0d77eb1fc2
files src/string.cpp
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/string.cpp
+++ b/src/string.cpp
@@ -9,6 +9,7 @@
 #include "macros.h"
 #include "table/control_codes.h"
 #include "helpers.hpp"
+#include "debug.h"
 
 #include <stdarg.h>
 #include <ctype.h> // required for tolower()
@@ -47,11 +48,14 @@
 	assert(dst <= last);
 	for (; *src != '\0' && dst != last; ++dst, ++src) *dst = *src;
 	*dst = '\0';
-#if 1
 	if (dst == last && *src != '\0') {
+#ifdef STRGEN
 		error("String too long for destination buffer");
+#else /* STRGEN */
+		DEBUG(misc, 0, "String too long for destination buffer");
+		*dst = '\0';
+#endif /* STRGEN */
 	}
-#endif
 	return dst;
 }