aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-04-04 07:34:41 +0200
committerMarc André Tanner <mat@brain-dump.org>2017-04-04 07:36:33 +0200
commit2cfaf219558dd730478e4c5e27376091b617a50f (patch)
treeb7c1f81ee50c7c2fc49ee3a6480ac2acafbd1b5d /main.c
parent9ceac7ea426bf4aceb6aa260d10b83e3c7fe16d3 (diff)
downloadvis-2cfaf219558dd730478e4c5e27376091b617a50f.tar.gz
vis-2cfaf219558dd730478e4c5e27376091b617a50f.tar.xz
vis: reject multi letter mark and register names
Fix #531
Diffstat (limited to 'main.c')
-rw-r--r--main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/main.c b/main.c
index c8fefaa..b5a9d9e 100644
--- a/main.c
+++ b/main.c
@@ -1207,6 +1207,8 @@ static const char *macro_record(Vis *vis, const char *keys, const Arg *arg) {
static const char *macro_replay(Vis *vis, const char *keys, const Arg *arg) {
if (!keys[0])
return NULL;
+ if (keys[1])
+ return vis_keys_next(vis, keys);
enum VisRegister reg = vis_register_from(vis, keys[0]);
vis_macro_replay(vis, reg);
return keys+1;
@@ -1679,6 +1681,8 @@ static const char *selection_restore(Vis *vis, const char *keys, const Arg *arg)
static const char *reg(Vis *vis, const char *keys, const Arg *arg) {
if (!keys[0])
return NULL;
+ if (keys[1])
+ return vis_keys_next(vis, keys);
enum VisRegister reg = vis_register_from(vis, keys[0]);
vis_register_set(vis, reg);
return keys+1;
@@ -1687,6 +1691,8 @@ static const char *reg(Vis *vis, const char *keys, const Arg *arg) {
static const char *mark_set(Vis *vis, const char *keys, const Arg *arg) {
if (!keys[0])
return NULL;
+ if (keys[1])
+ return vis_keys_next(vis, keys);
vis_mark_set(vis, vis_mark_from(vis, keys[0]), view_cursor_get(vis_view(vis)));
return keys+1;
}
@@ -1694,6 +1700,8 @@ static const char *mark_set(Vis *vis, const char *keys, const Arg *arg) {
static const char *mark_motion(Vis *vis, const char *keys, const Arg *arg) {
if (!keys[0])
return NULL;
+ if (keys[1])
+ return vis_keys_next(vis, keys);
vis_motion(vis, arg->i, vis_mark_from(vis, keys[0]));
return keys+1;
}
@@ -1751,6 +1759,8 @@ static const char *delete(Vis *vis, const char *keys, const Arg *arg) {
static const char *insert_register(Vis *vis, const char *keys, const Arg *arg) {
if (!keys[0])
return NULL;
+ if (keys[1])
+ return vis_keys_next(vis, keys);
enum VisRegister reg = vis_register_from(vis, keys[0]);
size_t len;
const char *data = vis_register_get(vis, reg, &len);