summaryrefslogtreecommitdiff
path: root/src/input_handler.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-01-28 22:33:29 +0000
committerMaxime Coste <frrrwww@gmail.com>2015-01-28 22:33:29 +0000
commitffff4711c51c1a7aacdd40ab10be03fdcf627455 (patch)
treea26c5e35c0714bc1853861cf85f7faa04cc6b5f2 /src/input_handler.cc
parentbb74770a2435b53a211f8888077a3a52fdfbd868 (diff)
Add history memory domain
Diffstat (limited to 'src/input_handler.cc')
-rw-r--r--src/input_handler.cc33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc
index afc6aecf..354fa973 100644
--- a/src/input_handler.cc
+++ b/src/input_handler.cc
@@ -476,18 +476,6 @@ String common_prefix(ArrayView<String> strings)
return res;
}
-void history_push(Vector<String>& history, StringView entry)
-{
- if(entry.empty())
- {
- return;
- }
- Vector<String>::iterator it;
- while ((it = find(history, entry)) != history.end())
- history.erase(it);
- history.push_back(entry);
-}
-
class Prompt : public InputMode
{
public:
@@ -507,7 +495,7 @@ public:
void on_key(Key key) override
{
- Vector<String>& history = ms_history[m_prompt];
+ History& history = ms_history[m_prompt];
const String& line = m_line_editor.line();
bool showcompl = false;
@@ -739,10 +727,23 @@ private:
bool m_autoshowcompl;
Mode m_mode = Mode::Default;
- static UnorderedMap<String, Vector<String>> ms_history;
- Vector<String>::iterator m_history_it;
+ using History = Vector<String, MemoryDomain::History>;
+ static UnorderedMap<String, History, MemoryDomain::History> ms_history;
+ History::iterator m_history_it;
+
+ static void history_push(History& history, StringView entry)
+ {
+ if(entry.empty())
+ {
+ return;
+ }
+ History::iterator it;
+ while ((it = find(history, entry)) != history.end())
+ history.erase(it);
+ history.push_back(entry);
+ }
};
-UnorderedMap<String, Vector<String>> Prompt::ms_history;
+UnorderedMap<String, Prompt::History, MemoryDomain::History> Prompt::ms_history;
class NextKey : public InputMode
{