aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2016-04-30 16:45:49 +0200
committerMarc André Tanner <mat@brain-dump.org>2016-05-01 12:37:19 +0200
commit1724f24a0c8795e461f7acf8ca94ecae145da96b (patch)
treef62e953270886eba21800ba6a9349096142763c3 /main.c
parentc8d1e2296688a77d7b0024cc572164dae694cd87 (diff)
downloadvis-1724f24a0c8795e461f7acf8ca94ecae145da96b.tar.gz
vis-1724f24a0c8795e461f7acf8ca94ecae145da96b.tar.xz
vis: cleanup input handling, improve macro replay
Diffstat (limited to 'main.c')
-rw-r--r--main.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/main.c b/main.c
index b27c11e..5272bd7 100644
--- a/main.c
+++ b/main.c
@@ -1619,14 +1619,10 @@ static const char *replace(Vis *vis, const char *keys, const Arg *arg) {
const char *next = vis_keys_next(vis, keys);
if (!next)
return NULL;
- size_t len = next - keys;
- char key[len+1];
- memcpy(key, keys, len);
- key[len] = '\0';
vis_operator(vis, VIS_OP_REPLACE);
vis_motion(vis, VIS_MOVE_NOP);
- vis_keys_inject(vis, next, key);
- vis_keys_inject(vis, next+len, "<Escape>");
+ vis_keys_push(vis, keys);
+ vis_keys_push(vis, "<Escape>");
return next;
}
@@ -1948,10 +1944,10 @@ static const char *openline(Vis *vis, const char *keys, const Arg *arg) {
vis_operator(vis, VIS_OP_INSERT);
if (arg->i > 0) {
vis_motion(vis, VIS_MOVE_LINE_END);
- vis_keys_inject(vis, keys, "<insert-newline>");
+ vis_keys_push(vis, "<insert-newline>");
} else {
vis_motion(vis, VIS_MOVE_LINE_BEGIN);
- vis_keys_inject(vis, keys, "<insert-newline><Up>");
+ vis_keys_push(vis, "<insert-newline><Up>");
}
return keys;
}