(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.
--- 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;
}