From: Karl Heuer Date: Wed, 24 Jan 1996 23:41:04 +0000 (+0000) Subject: * macros.c (Fstart_kbd_macro): Use xmalloc. X-Git-Tag: emacs-19.34~1559 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9e7c370a5b574d55b5f9996fed99b1494818ea2a;p=emacs.git * macros.c (Fstart_kbd_macro): Use xmalloc. Shrink the kbd macro buffer if it is very big. --- diff --git a/src/macros.c b/src/macros.c index 67c8ede6d4a..e63ea2be2e2 100644 --- a/src/macros.c +++ b/src/macros.c @@ -51,18 +51,24 @@ Non-nil arg (prefix arg) means append to last macro defined;\n\ { 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 @@ An argument of zero means repeat until error.") = 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)