From: SmallJoker Date: Thu, 14 Dec 2017 18:47:29 +0000 (+0100) Subject: Chat: Remove prompt history duplicates (#6762) X-Git-Tag: 5.0.0~683 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6e5109fd46fa93335aa8bc7d5e3edb738980241f;p=oweals%2Fminetest.git Chat: Remove prompt history duplicates (#6762) --- 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();