diff options
| -rw-r--r-- | vis-core.h | 1 | ||||
| -rw-r--r-- | vis.c | 9 |
2 files changed, 9 insertions, 1 deletions
@@ -89,6 +89,7 @@ typedef struct { /* a macro is just a sequence of symbolic keys as received from ui->getkey */ typedef Buffer Macro; +#define macro_init buffer_init #define macro_release buffer_release #define macro_reset buffer_truncate #define macro_append buffer_append0 @@ -930,7 +930,14 @@ static void vis_keys_process(Vis *vis, size_t pos) { } void vis_keys_feed(Vis *vis, const char *input) { - vis_keys_push(vis, input, buffer_length0(vis->keys), false); + if (!input) + return; + Macro macro; + macro_init(¯o); + if (!macro_append(¯o, input)) + return; + macro_replay(vis, ¯o); + macro_release(¯o); } static void vis_keys_push(Vis *vis, const char *input, size_t pos, bool record) { |
