From 69d2d3e278efcd9509a87868f7fd98c5e1e4c448 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 9 Apr 2019 19:29:27 +0100 Subject: [PATCH] Crashlog: Limit total number of news items --- src/crashlog.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/crashlog.cpp b/src/crashlog.cpp index 66bf7afc67..287d14d50d 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -334,9 +334,19 @@ char *CrashLog::LogGamelog(char *buffer, const char *last) const */ char *CrashLog::LogRecentNews(char *buffer, const char *last) const { - buffer += seprintf(buffer, last, "Recent news messages:\n"); - + uint total = 0; for (NewsItem *news = _oldest_news; news != NULL; news = news->next) { + total++; + } + uint show = min(total, 32); + buffer += seprintf(buffer, last, "Recent news messages (%u of %u):\n", show, total); + + uint skip = total - show; + for (NewsItem *news = _oldest_news; news != NULL; news = news->next) { + if (skip) { + skip--; + continue; + } YearMonthDay ymd; ConvertDateToYMD(news->date, &ymd); buffer += seprintf(buffer, last, "(%i-%02i-%02i) StringID: %u, Type: %u, Ref1: %u, %u, Ref2: %u, %u\n",