aboutsummaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-07-11 23:19:22 +0200
committerMarc André Tanner <mat@brain-dump.org>2017-07-11 23:19:22 +0200
commit8d2de4beaf79ab2273e2121d3209dd6825efabe6 (patch)
treef09c152140c44a7f6a4c8de42779c2c910b52e7e /vis.c
parent3ca61b3354c02e7f961e3cd6808a94fd9b740586 (diff)
downloadvis-8d2de4beaf79ab2273e2121d3209dd6825efabe6.tar.gz
vis-8d2de4beaf79ab2273e2121d3209dd6825efabe6.tar.xz
Revert "vis: process aliased key sequences individually"
This reverts commit 54ca598fcccff8844bfbe494cd3b325b2fea487f. The key handling functions are called too often. This for example causes problems for `r` (replace char) in combination with :langmap.
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/vis.c b/vis.c
index 7596097..c8229dd 100644
--- a/vis.c
+++ b/vis.c
@@ -1159,22 +1159,12 @@ static void vis_keys_process(Vis *vis, size_t pos) {
strcpy(vis->key_prev, vis->key_current);
strncpy(vis->key_current, start, len);
vis->key_current[len] = '\0';
- char *params_end = binding_end;
- while (params_end) {
- tmp = *params_end;
- *params_end = '\0';
- end = (char*)binding->action->func(vis, binding_end, &binding->action->arg);
- *params_end = tmp;
- if (end) {
- start = cur = end;
- break;
- }
- params_end = (char*)vis_keys_next(vis, params_end);
- }
+ end = (char*)binding->action->func(vis, binding_end, &binding->action->arg);
if (!end) {
end = start;
break;
}
+ start = cur = end;
} else if (binding->alias) {
buffer_remove(buf, start - buf->data, binding_end - start);
buffer_insert0(buf, start - buf->data, binding->alias);