summaryrefslogtreecommitdiff
path: root/src/normal.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-08-19 13:41:16 +0100
committerMaxime Coste <frrrwww@gmail.com>2015-08-19 13:41:16 +0100
commitbaf0203b9dde15a604b21c4e8438c64b46a5fbfb (patch)
tree0ae5c5ccb9fcc14d1997bba56fbc515547de0733 /src/normal.cc
parent3f493fa186305fb59877e7b560a0cbce78cff3aa (diff)
Default register is not handled by the Normal input mode.
Normal input mode will just pass 0 as the reg if it was not specified by the user, its yank/paste functions that should determine 0 means use '"' register.
Diffstat (limited to 'src/normal.cc')
-rw-r--r--src/normal.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/normal.cc b/src/normal.cc
index a2985fc4..ecd4c60b 100644
--- a/src/normal.cc
+++ b/src/normal.cc
@@ -460,15 +460,17 @@ void select_next_match(const Buffer& buffer, SelectionList& selections,
void yank(Context& context, NormalParams params)
{
- RegisterManager::instance()[params.reg] = context.selections_content();
+ const char reg = params.reg ? params.reg : '"';
+ RegisterManager::instance()[reg] = context.selections_content();
context.print_status({ format("yanked {} selections to register {}",
- context.selections().size(), params.reg),
+ context.selections().size(), reg),
get_face("Information") });
}
void erase_selections(Context& context, NormalParams params)
{
- RegisterManager::instance()[params.reg] = context.selections_content();
+ const char reg = params.reg ? params.reg : '"';
+ RegisterManager::instance()[reg] = context.selections_content();
ScopedEdition edition(context);
context.selections().erase();
context.selections().avoid_eol();
@@ -476,7 +478,8 @@ void erase_selections(Context& context, NormalParams params)
void change(Context& context, NormalParams params)
{
- RegisterManager::instance()[params.reg] = context.selections_content();
+ const char reg = params.reg ? params.reg : '"';
+ RegisterManager::instance()[reg] = context.selections_content();
enter_insert_mode<InsertMode::Replace>(context, params);
}
@@ -493,7 +496,8 @@ constexpr InsertMode adapt_for_linewise(InsertMode mode)
template<InsertMode mode>
void paste(Context& context, NormalParams params)
{
- auto strings = RegisterManager::instance()[params.reg].values(context);
+ const char reg = params.reg ? params.reg : '"';
+ auto strings = RegisterManager::instance()[reg].values(context);
InsertMode effective_mode = mode;
for (auto& str : strings)
{
@@ -510,7 +514,8 @@ void paste(Context& context, NormalParams params)
template<InsertMode mode>
void paste_all(Context& context, NormalParams params)
{
- auto strings = RegisterManager::instance()[params.reg].values(context);
+ const char reg = params.reg ? params.reg : '"';
+ auto strings = RegisterManager::instance()[reg].values(context);
InsertMode effective_mode = mode;
String all;
Vector<ByteCount> offsets;