diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2015-08-19 13:41:16 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2015-08-19 13:41:16 +0100 |
| commit | baf0203b9dde15a604b21c4e8438c64b46a5fbfb (patch) | |
| tree | 0ae5c5ccb9fcc14d1997bba56fbc515547de0733 /src/normal.cc | |
| parent | 3f493fa186305fb59877e7b560a0cbce78cff3aa (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.cc | 17 |
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; |
