diff options
| -rw-r--r-- | vis-core.h | 2 | ||||
| -rw-r--r-- | vis-registers.c | 4 | ||||
| -rw-r--r-- | vis.c | 2 |
3 files changed, 5 insertions, 3 deletions
@@ -284,7 +284,7 @@ bool register_slot_put(Vis*, Register*, size_t slot, const char *data, size_t le bool register_put_range(Vis*, Register*, Text*, Filerange*); bool register_slot_put_range(Vis*, Register*, size_t slot, Text*, Filerange*); -size_t register_count(Register*); +size_t vis_register_count(Vis*, Register*); bool register_resize(Register*, size_t count); #endif diff --git a/vis-registers.c b/vis-registers.c index f5b5d7b..d5bb10d 100644 --- a/vis-registers.c +++ b/vis-registers.c @@ -175,7 +175,9 @@ bool register_put_range(Vis *vis, Register *reg, Text *txt, Filerange *range) { register_resize(reg, 1); } -size_t register_count(Register *reg) { +size_t vis_register_count(Vis *vis, Register *reg) { + if (reg->type == REGISTER_NUMBER) + return vis->win ? view_cursors_count(vis->win->view) : 0; return array_length(®->values); } @@ -821,7 +821,7 @@ void vis_do(Vis *vis) { size_t last_reg_slot = reg_slot; if (!reg) reg = &vis->registers[file->internal ? VIS_REG_PROMPT : VIS_REG_DEFAULT]; - if (a->op == &vis_operators[VIS_OP_PUT_AFTER] && multiple_cursors && register_count(reg) == 1) + if (a->op == &vis_operators[VIS_OP_PUT_AFTER] && multiple_cursors && vis_register_count(vis, reg) == 1) reg_slot = 0; for (Cursor *cursor = view_cursors(view), *next; cursor; cursor = next) { |
