(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.
authorrubidium
Sat, 14 Jul 2007 22:37:40 +0000
changeset 7753 624cc9dddfd2
parent 7752 6e8fa98d98d3
child 7754 8e7205edd6c7
(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.
src/string.cpp
--- a/src/string.cpp	Sat Jul 14 20:40:11 2007 +0000
+++ b/src/string.cpp	Sat Jul 14 22:37:40 2007 +0000
@@ -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;
 }