*/
#include "chat.h"
-#include "debug.h"
-#include "config.h"
-#include "util/strfnd.h"
+
+#include <algorithm>
#include <cctype>
#include <sstream>
+
+#include "config.h"
+#include "debug.h"
+#include "util/strfnd.h"
#include "util/string.h"
#include "util/numeric.h"
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();