From 6e5109fd46fa93335aa8bc7d5e3edb738980241f Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Thu, 14 Dec 2017 19:47:29 +0100 Subject: [PATCH] Chat: Remove prompt history duplicates (#6762) --- src/chat.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/chat.cpp b/src/chat.cpp index a5d82a649..818e261d7 100644 --- a/src/chat.cpp +++ b/src/chat.cpp @@ -18,11 +18,14 @@ with this program; if not, write to the Free Software Foundation, Inc., */ #include "chat.h" -#include "debug.h" -#include "config.h" -#include "util/strfnd.h" + +#include #include #include + +#include "config.h" +#include "debug.h" +#include "util/strfnd.h" #include "util/string.h" #include "util/numeric.h" @@ -403,8 +406,14 @@ void ChatPrompt::input(const std::wstring &str) void ChatPrompt::addToHistory(std::wstring line) { - if (!line.empty()) + if (!line.empty() && + (m_history.size() == 0 || m_history.back() != line)) { + // Remove all duplicates + m_history.erase(std::remove(m_history.begin(), m_history.end(), + line), m_history.end()); + // Push unique line m_history.push_back(line); + } if (m_history.size() > m_history_limit) m_history.erase(m_history.begin()); m_history_index = m_history.size();