aboutsummaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/vis.c b/vis.c
index 12e6f9f..6228de0 100644
--- a/vis.c
+++ b/vis.c
@@ -1207,10 +1207,13 @@ static const char *delete(const char *keys, const Arg *arg) {
}
static const char *insert_register(const char *keys, const Arg *arg) {
- Register *reg = &vis->registers[arg->i];
- int pos = view_cursor_get(vis->win->view);
- editor_insert(vis, pos, reg->data, reg->len);
- view_cursor_to(vis->win->view, pos + reg->len);
+ Register *reg;
+ keys = key2register(keys, &reg);
+ if (reg) {
+ int pos = view_cursor_get(vis->win->view);
+ editor_insert(vis, pos, reg->data, reg->len);
+ view_cursor_to(vis->win->view, pos + reg->len);
+ }
return keys;
}