# HG changeset patch # User Karl Heuer # Date 822526864 0 # Node ID 621f53083d602ac00820bb6c00b7e6b30d569731 # Parent f777822a5d8126e79203d091e31e3b3f983ee1a6 * macros.c (Fstart_kbd_macro): Use xmalloc. Shrink the kbd macro buffer if it is very big. diff -r f777822a5d81 -r 621f53083d60 src/macros.c --- a/src/macros.c Wed Jan 24 23:40:40 1996 +0000 +++ b/src/macros.c Wed Jan 24 23:41:04 1996 +0000 @@ -51,18 +51,24 @@ { current_kboard->kbd_macro_bufsize = 30; current_kboard->kbd_macro_buffer - = (Lisp_Object *)malloc (30 * sizeof (Lisp_Object)); + = (Lisp_Object *)xmalloc (30 * sizeof (Lisp_Object)); } update_mode_lines++; if (NILP (append)) { + if (current_kboard->kbd_macro_bufsize > 200) + { + current_kboard->kbd_macro_bufsize = 30; + current_kboard->kbd_macro_buffer + = (Lisp_Object *)xrealloc (30 * sizeof (Lisp_Object)); + } current_kboard->kbd_macro_ptr = current_kboard->kbd_macro_buffer; current_kboard->kbd_macro_end = current_kboard->kbd_macro_buffer; - message("Defining kbd macro..."); + message ("Defining kbd macro..."); } else { - message("Appending to kbd macro..."); + message ("Appending to kbd macro..."); current_kboard->kbd_macro_ptr = current_kboard->kbd_macro_end; Fexecute_kbd_macro (current_kboard->Vlast_kbd_macro, make_number (1)); @@ -101,7 +107,7 @@ = make_event_array ((current_kboard->kbd_macro_end - current_kboard->kbd_macro_buffer), current_kboard->kbd_macro_buffer); - message("Keyboard macro defined"); + message ("Keyboard macro defined"); } if (XFASTINT (repeat) == 0)