diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2015-09-19 16:11:59 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2015-10-05 16:29:52 +0200 |
| commit | 97947adeca4b81a2da0fc5506df46b6e68a86074 (patch) | |
| tree | 69855d798b698cf93b8cc66846b018ca591fc89b /vis.c | |
| parent | 5c5fd62add1244586afa77d51e6c30f354138030 (diff) | |
| download | vis-97947adeca4b81a2da0fc5506df46b6e68a86074.tar.gz vis-97947adeca4b81a2da0fc5506df46b6e68a86074.tar.xz | |
vis: add rudimentary support for key aliases
This will eventually be exposed via a :map style command.
Diffstat (limited to 'vis.c')
| -rw-r--r-- | vis.c | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -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 */ |
