[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/macros.c
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/macros.c |
Date: |
Wed, 12 Feb 2003 06:08:25 -0500 |
Index: emacs/src/macros.c
diff -c emacs/src/macros.c:1.51 emacs/src/macros.c:1.52
*** emacs/src/macros.c:1.51 Tue Feb 4 09:03:12 2003
--- emacs/src/macros.c Wed Feb 12 06:08:24 2003
***************
*** 93,98 ****
--- 93,99 ----
else
{
int i, len;
+ int cvt;
/* Check the type of last-kbd-macro in case Lisp code changed it. */
if (!STRINGP (current_kboard->Vlast_kbd_macro)
***************
*** 111,119 ****
= (Lisp_Object *)xrealloc (current_kboard->kbd_macro_buffer,
(len + 30) * sizeof (Lisp_Object));
}
for (i = 0; i < len; i++)
! current_kboard->kbd_macro_buffer[i]
! = Faref (current_kboard->Vlast_kbd_macro, make_number (i));
current_kboard->kbd_macro_ptr = current_kboard->kbd_macro_buffer + len;
current_kboard->kbd_macro_end = current_kboard->kbd_macro_ptr;
--- 112,128 ----
= (Lisp_Object *)xrealloc (current_kboard->kbd_macro_buffer,
(len + 30) * sizeof (Lisp_Object));
}
+
+ /* Must convert meta modifier when copying string to vector. */
+ cvt = STRINGP (current_kboard->Vlast_kbd_macro);
for (i = 0; i < len; i++)
! {
! Lisp_Object c;
! c = Faref (current_kboard->Vlast_kbd_macro, make_number (i));
! if (cvt && INTEGERP (c) && (XINT (c) & 0x80))
! c = XSETFASTINT (c, CHAR_META | (XINT (c) & ~0x80));
! current_kboard->kbd_macro_buffer[i] = c;
! }
current_kboard->kbd_macro_ptr = current_kboard->kbd_macro_buffer + len;
current_kboard->kbd_macro_end = current_kboard->kbd_macro_ptr;