aboutsummaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/vis.c b/vis.c
index ce9cc82..12e6f9f 100644
--- a/vis.c
+++ b/vis.c
@@ -1110,9 +1110,17 @@ static const char *selection_restore(const char *keys, const Arg *arg) {
return keys;
}
+static const char *key2register(const char *keys, Register **reg) {
+ *reg = NULL;
+ if (!keys[0])
+ return NULL;
+ if (keys[0] >= 'a' && keys[0] <= 'z')
+ *reg = &vis->registers[keys[0] - 'a'];
+ return keys+1;
+}
+
static const char *reg(const char *keys, const Arg *arg) {
- vis->action.reg = &vis->registers[arg->i];
- return keys;
+ return key2register(keys, &vis->action.reg);
}
static const char *mark(const char *keys, const Arg *arg) {