diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2015-01-28 22:33:29 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2015-01-28 22:33:29 +0000 |
| commit | ffff4711c51c1a7aacdd40ab10be03fdcf627455 (patch) | |
| tree | a26c5e35c0714bc1853861cf85f7faa04cc6b5f2 /src/input_handler.cc | |
| parent | bb74770a2435b53a211f8888077a3a52fdfbd868 (diff) | |
Add history memory domain
Diffstat (limited to 'src/input_handler.cc')
| -rw-r--r-- | src/input_handler.cc | 33 |
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 { |
