]> git.eshelyaron.com Git - emacs.git/commitdiff
(store_kbd_macro_char): Change the way buffers are
authorGerd Moellmann <gerd@gnu.org>
Fri, 8 Dec 2000 09:59:12 +0000 (09:59 +0000)
committerGerd Moellmann <gerd@gnu.org>
Fri, 8 Dec 2000 09:59:12 +0000 (09:59 +0000)
reallocated to be portable and less obfuscated.

src/macros.c

index 3c6e0b33edbda170feee5e0b18bd0e331502252c..bf19526eb0e68d743bccd536f0063db85f5ca353 100644 (file)
@@ -1,5 +1,5 @@
 /* Keyboard macros.
-   Copyright (C) 1985, 1986, 1993 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1986, 1993, 2000 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -183,17 +183,20 @@ store_kbd_macro_char (c)
           - current_kboard->kbd_macro_buffer)
          == current_kboard->kbd_macro_bufsize)
        {
-         register Lisp_Object *new;
+         int offset = (current_kboard->kbd_macro_ptr
+                       - current_kboard->kbd_macro_buffer);
          current_kboard->kbd_macro_bufsize *= 2;
-         new = (Lisp_Object *)xrealloc (current_kboard->kbd_macro_buffer,
-                                        (current_kboard->kbd_macro_bufsize
-                                         * sizeof (Lisp_Object)));
+         current_kboard->kbd_macro_buffer
+           = (Lisp_Object *)xrealloc (current_kboard->kbd_macro_buffer,
+                                      (current_kboard->kbd_macro_bufsize
+                                       * sizeof (Lisp_Object)));
          current_kboard->kbd_macro_ptr
-           += new - current_kboard->kbd_macro_buffer;
+           = current_kboard->kbd_macro_buffer + offset;
          current_kboard->kbd_macro_end
-           += new - current_kboard->kbd_macro_buffer;
-         current_kboard->kbd_macro_buffer = new;
+           = (current_kboard->kbd_macro_buffer
+              + current_kboard->kbd_macro_bufsize);
        }
+      
       *current_kboard->kbd_macro_ptr++ = c;
     }
 }