forked from Mirrorlandia_minetest/minetest
Chat: Remove prompt history duplicates (#6762)
This commit is contained in:
parent
551c12391a
commit
6e5109fd46
17
src/chat.cpp
17
src/chat.cpp
@ -18,11 +18,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "chat.h"
|
#include "chat.h"
|
||||||
#include "debug.h"
|
|
||||||
#include "config.h"
|
#include <algorithm>
|
||||||
#include "util/strfnd.h"
|
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "util/strfnd.h"
|
||||||
#include "util/string.h"
|
#include "util/string.h"
|
||||||
#include "util/numeric.h"
|
#include "util/numeric.h"
|
||||||
|
|
||||||
@ -403,8 +406,14 @@ void ChatPrompt::input(const std::wstring &str)
|
|||||||
|
|
||||||
void ChatPrompt::addToHistory(std::wstring line)
|
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);
|
m_history.push_back(line);
|
||||||
|
}
|
||||||
if (m_history.size() > m_history_limit)
|
if (m_history.size() > m_history_limit)
|
||||||
m_history.erase(m_history.begin());
|
m_history.erase(m_history.begin());
|
||||||
m_history_index = m_history.size();
|
m_history_index = m_history.size();
|
||||||
|
Loading…
Reference in New Issue
Block a user