diff options
| author | Gerd Moellmann | 2001-09-05 09:39:09 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2001-09-05 09:39:09 +0000 |
| commit | 08e1d6dfd60608221d9eacf98752ae69ecad806c (patch) | |
| tree | 502b811e8865b755dddd4e99b024132d97208f10 /src/macros.c | |
| parent | c3b497b399e7f3f7d855e9c9510f07ebf05e1f1f (diff) | |
| download | emacs-08e1d6dfd60608221d9eacf98752ae69ecad806c.tar.gz emacs-08e1d6dfd60608221d9eacf98752ae69ecad806c.zip | |
(store_kbd_macro_char): Fix computation of kbd_macro_end.
Diffstat (limited to 'src/macros.c')
| -rw-r--r-- | src/macros.c | 32 |
1 files changed, 15 insertions, 17 deletions
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 | |||
| 177 | store_kbd_macro_char (c) | 177 | store_kbd_macro_char (c) |
| 178 | Lisp_Object c; | 178 | Lisp_Object c; |
| 179 | { | 179 | { |
| 180 | if (!NILP (current_kboard->defining_kbd_macro)) | 180 | struct kboard *kb = current_kboard; |
| 181 | |||
| 182 | if (!NILP (kb->defining_kbd_macro)) | ||
| 181 | { | 183 | { |
| 182 | if ((current_kboard->kbd_macro_ptr | 184 | if (kb->kbd_macro_ptr - kb->kbd_macro_buffer == kb->kbd_macro_bufsize) |
| 183 | - current_kboard->kbd_macro_buffer) | ||
| 184 | == current_kboard->kbd_macro_bufsize) | ||
| 185 | { | 185 | { |
| 186 | int offset = (current_kboard->kbd_macro_ptr | 186 | int ptr_offset, end_offset, nbytes; |
| 187 | - current_kboard->kbd_macro_buffer); | 187 | |
| 188 | current_kboard->kbd_macro_bufsize *= 2; | 188 | ptr_offset = kb->kbd_macro_ptr - kb->kbd_macro_buffer; |
| 189 | current_kboard->kbd_macro_buffer | 189 | end_offset = kb->kbd_macro_end - kb->kbd_macro_buffer; |
| 190 | = (Lisp_Object *)xrealloc (current_kboard->kbd_macro_buffer, | 190 | kb->kbd_macro_bufsize *= 2; |
| 191 | (current_kboard->kbd_macro_bufsize | 191 | nbytes = kb->kbd_macro_bufsize * sizeof *kb->kbd_macro_buffer; |
| 192 | * sizeof (Lisp_Object))); | 192 | kb->kbd_macro_buffer |
| 193 | current_kboard->kbd_macro_ptr | 193 | = (Lisp_Object *) xrealloc (kb->kbd_macro_buffer, nbytes); |
| 194 | = current_kboard->kbd_macro_buffer + offset; | 194 | kb->kbd_macro_ptr = kb->kbd_macro_buffer + ptr_offset; |
| 195 | current_kboard->kbd_macro_end | 195 | kb->kbd_macro_end = kb->kbd_macro_buffer + end_offset; |
| 196 | = (current_kboard->kbd_macro_buffer | ||
| 197 | + current_kboard->kbd_macro_bufsize); | ||
| 198 | } | 196 | } |
| 199 | 197 | ||
| 200 | *current_kboard->kbd_macro_ptr++ = c; | 198 | *kb->kbd_macro_ptr++ = c; |
| 201 | } | 199 | } |
| 202 | } | 200 | } |
| 203 | 201 | ||