aboutsummaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/vis.c b/vis.c
index 72889ab..9e397c4 100644
--- a/vis.c
+++ b/vis.c
@@ -2625,10 +2625,15 @@ static const char *keypress(const char *input) {
*end = tmp;
if (binding) { /* exact match */
- end = (char*)binding->func(end, &binding->arg);
- if (!end)
- break;
- start = cur = end;
+ if (binding->func) {
+ end = (char*)binding->func(end, &binding->arg);
+ if (!end)
+ break;
+ start = cur = end;
+ } else { /* alias */
+ buffer_put0(&vis->input_queue, end);
+ buffer_prepend0(&vis->input_queue, binding->alias);
+ }
} else if (prefix) { /* incomplete key binding? */
cur = end;
} else { /* no keybinding */