summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-06-29 13:25:34 +0200
committerMaxime Coste <frrrwww@gmail.com>2012-06-29 13:25:34 +0200
commit7aa533c04904a8be36354e5896891f672ba3a40f (patch)
tree999170bdcf6573a5039d295ab776bc2435558dd6 /src
parent49e1d918043c656dde9500ba7e09de173c8fef4a (diff)
simplify Register interface
Diffstat (limited to 'src')
-rw-r--r--src/commands.cc8
-rw-r--r--src/main.cc8
-rw-r--r--src/ncurses.cc2
-rw-r--r--src/register.cc17
-rw-r--r--src/register.hh6
5 files changed, 12 insertions, 29 deletions
diff --git a/src/commands.cc b/src/commands.cc
index 0d42b060..fc3afe5f 100644
--- a/src/commands.cc
+++ b/src/commands.cc
@@ -659,9 +659,11 @@ class RegisterRestorer
{
public:
RegisterRestorer(char name)
- : m_name(name),
- m_save(RegisterManager::instance()[name].content())
- {}
+ : m_name(name)
+ {
+ memoryview<String> save = RegisterManager::instance()[name];
+ m_save = std::vector<String>(save.begin(), save.end());
+ }
~RegisterRestorer()
{ RegisterManager::instance()[m_name] = m_save; }
diff --git a/src/main.cc b/src/main.cc
index 9a9c2008..ba6eaccc 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -210,7 +210,7 @@ void do_search(Editor& editor)
{
String ex = prompt("/");
if (ex.empty())
- ex = RegisterManager::instance()['/'].get();
+ ex = RegisterManager::instance()['/'][0];
else
RegisterManager::instance()['/'] = ex;
@@ -222,7 +222,7 @@ void do_search(Editor& editor)
template<bool append>
void do_search_next(Editor& editor)
{
- const String& ex = RegisterManager::instance()['/'].get();
+ const String& ex = RegisterManager::instance()['/'][0];
if (not ex.empty())
editor.select(std::bind(select_next_match, _1, ex), append);
else
@@ -260,9 +260,9 @@ void do_paste(Editor& editor, int count)
else
{
if (append)
- editor.append(reg.get(count-1));
+ editor.append(reg[count-1]);
else
- editor.insert(reg.get(count-1));
+ editor.insert(reg[count-1]);
}
}
diff --git a/src/ncurses.cc b/src/ncurses.cc
index 0daaabe9..adf2a8f5 100644
--- a/src/ncurses.cc
+++ b/src/ncurses.cc
@@ -265,7 +265,7 @@ String NCursesClient::prompt(const String& text, Completer completer)
case CTRL('r'):
{
c = getch();
- String reg = RegisterManager::instance()[c].get();
+ String reg = RegisterManager::instance()[c][0];
current_completion = -1;
result = result.substr(0, cursor_pos) + reg + result.substr(cursor_pos, String::npos);
cursor_pos += reg.length();
diff --git a/src/register.cc b/src/register.cc
index d8c48704..af0852ea 100644
--- a/src/register.cc
+++ b/src/register.cc
@@ -5,28 +5,13 @@ namespace Kakoune
const String Register::ms_empty;
-Register& Register::operator=(const String& value)
-{
- m_content.clear();
- m_content.push_back(value);
- return *this;
-}
-
Register& Register::operator=(const memoryview<String>& values)
{
m_content = std::vector<String>(values.begin(), values.end());
return *this;
}
-const String& Register::get() const
-{
- if (m_content.size() != 0)
- return m_content.front();
- else
- return ms_empty;
-}
-
-const String& Register::get(size_t index) const
+const String& Register::operator[](size_t index) const
{
if (m_content.size() > index)
return m_content[index];
diff --git a/src/register.hh b/src/register.hh
index 0dc072f7..fc50e44f 100644
--- a/src/register.hh
+++ b/src/register.hh
@@ -12,16 +12,12 @@ namespace Kakoune
class Register
{
public:
- Register& operator=(const String& value);
Register& operator=(const memoryview<String>& values);
- const String& get() const;
- const String& get(size_t index) const;
+ const String& operator[](size_t index) const;
operator memoryview<String>() const
{ return memoryview<String>(m_content); }
-
- const std::vector<String>& content() const { return m_content; }
private:
std::vector<String> m_content;