emacs-diffs
[Top][All Lists]
Advanced

[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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]