summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2001-09-05 09:39:09 +0000
committerGerd Moellmann <gerd@gnu.org>2001-09-05 09:39:09 +0000
commit08e1d6dfd60608221d9eacf98752ae69ecad806c (patch)
tree502b811e8865b755dddd4e99b024132d97208f10 /src
parentc3b497b399e7f3f7d855e9c9510f07ebf05e1f1f (diff)
downloademacs-08e1d6dfd60608221d9eacf98752ae69ecad806c.tar.gz
(store_kbd_macro_char): Fix computation of kbd_macro_end.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog2
-rw-r--r--src/macros.c32
2 files changed, 17 insertions, 17 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 68a11d96400..5bb552318fc 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,7 @@
2001-09-05 Gerd Moellmann <gerd@gnu.org>
+ * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
+
* xdisp.c (string_buffer_position): Use *single_char_property*
functions instead of the *single_property* functions.
diff --git a/src/macros.c b/src/macros.c
index 4f5c77f6fbb..c70e29d9db1 100644
--- a/src/macros.c
+++ b/src/macros.c
@@ -177,27 +177,25 @@ void
store_kbd_macro_char (c)
Lisp_Object c;
{
- if (!NILP (current_kboard->defining_kbd_macro))
+ struct kboard *kb = current_kboard;
+
+ if (!NILP (kb->defining_kbd_macro))
{
- if ((current_kboard->kbd_macro_ptr
- - current_kboard->kbd_macro_buffer)
- == current_kboard->kbd_macro_bufsize)
+ if (kb->kbd_macro_ptr - kb->kbd_macro_buffer == kb->kbd_macro_bufsize)
{
- int offset = (current_kboard->kbd_macro_ptr
- - current_kboard->kbd_macro_buffer);
- current_kboard->kbd_macro_bufsize *= 2;
- 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
- = current_kboard->kbd_macro_buffer + offset;
- current_kboard->kbd_macro_end
- = (current_kboard->kbd_macro_buffer
- + current_kboard->kbd_macro_bufsize);
+ int ptr_offset, end_offset, nbytes;
+
+ ptr_offset = kb->kbd_macro_ptr - kb->kbd_macro_buffer;
+ end_offset = kb->kbd_macro_end - kb->kbd_macro_buffer;
+ kb->kbd_macro_bufsize *= 2;
+ nbytes = kb->kbd_macro_bufsize * sizeof *kb->kbd_macro_buffer;
+ kb->kbd_macro_buffer
+ = (Lisp_Object *) xrealloc (kb->kbd_macro_buffer, nbytes);
+ kb->kbd_macro_ptr = kb->kbd_macro_buffer + ptr_offset;
+ kb->kbd_macro_end = kb->kbd_macro_buffer + end_offset;
}
- *current_kboard->kbd_macro_ptr++ = c;
+ *kb->kbd_macro_ptr++ = c;
}
}