]> code.delx.au - gnu-emacs/blobdiff - src/macros.c
Fix typo in previous change's ChangeLog.
[gnu-emacs] / src / macros.c
index 07667f09431b8d6fae892b697d6b774e78e2c467..c3d26d0d5c2d8058e6b1dcb18d5220707c5fb518 100644 (file)
@@ -63,6 +63,8 @@ macro before appending to it.  */)
     {
       current_kboard->kbd_macro_buffer = xmalloc (30 * word_size);
       current_kboard->kbd_macro_bufsize = 30;
+      current_kboard->kbd_macro_ptr = current_kboard->kbd_macro_buffer;
+      current_kboard->kbd_macro_end = current_kboard->kbd_macro_buffer;
     }
   update_mode_lines = 19;
   if (NILP (append))
@@ -87,16 +89,13 @@ macro before appending to it.  */)
       /* Check the type of last-kbd-macro in case Lisp code changed it.  */
       len = CHECK_VECTOR_OR_STRING (KVAR (current_kboard, Vlast_kbd_macro));
 
-      if (INT_ADD_OVERFLOW (len, incr))
-       memory_full (SIZE_MAX);
-
       /* Copy last-kbd-macro into the buffer, in case the Lisp code
         has put another macro there.  */
-      if (current_kboard->kbd_macro_bufsize < len + incr)
+      if (current_kboard->kbd_macro_bufsize - incr < len)
        current_kboard->kbd_macro_buffer =
          xpalloc (current_kboard->kbd_macro_buffer,
                   &current_kboard->kbd_macro_bufsize,
-                  len + incr - current_kboard->kbd_macro_bufsize, -1,
+                  len - current_kboard->kbd_macro_bufsize + incr, -1,
                   sizeof *current_kboard->kbd_macro_buffer);
 
       /* Must convert meta modifier when copying string to vector.  */