diff --git a/src/prototypes.h b/src/prototypes.h index 6795d6e1..4a1eac51 100644 --- a/src/prototypes.h +++ b/src/prototypes.h @@ -595,8 +595,8 @@ linestruct *line_from_number(ssize_t number); void record_macro(void); void run_macro(void); #endif -void reserve_space_for(size_t newsize); size_t waiting_keycodes(void); +void put_back(int keycode); #ifdef ENABLE_NANORC void implant(const char *string); #endif diff --git a/src/winio.c b/src/winio.c index 843d34df..90c32b44 100644 --- a/src/winio.c +++ b/src/winio.c @@ -123,14 +123,9 @@ void run_macro(void) return; } - if (macro_length > capacity) - reserve_space_for(macro_length); + for (size_t index = macro_length; index > 0; ) + put_back(macro_buffer[--index]); - for (size_t i = 0; i < macro_length; i++) - key_buffer[i] = macro_buffer[i]; - - waiting_codes = macro_length; - nextcodes = key_buffer; mute_modifiers = TRUE; } #endif /* !NANO_TINY */