aboutsummaryrefslogtreecommitdiffstats
path: root/src/macros.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/macros.c')
-rw-r--r--src/macros.c32
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
177store_kbd_macro_char (c) 177store_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