]> code.delx.au - gnu-emacs/blobdiff - src/macros.c
(list_processes_1): Set undo_list instead of calling Fbuffer_undo_list.
[gnu-emacs] / src / macros.c
index 44d44d2c9c1f2bc89618b8058945c8c08d309045..09ae87b0a593d931d99f8c929764e0a9bde4e264 100644 (file)
@@ -93,6 +93,7 @@ macro before appending to it. */)
   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,9 +112,17 @@ macro before appending to it. */)
            = (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++)
-       current_kboard->kbd_macro_buffer[i]
-         = Faref (current_kboard->Vlast_kbd_macro, make_number (i));
+       {
+         Lisp_Object c;
+         c = Faref (current_kboard->Vlast_kbd_macro, make_number (i));
+         if (cvt && NATNUMP (c) && (XFASTINT (c) & 0x80))
+           XSETFASTINT (c, CHAR_META | (XFASTINT (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;
@@ -383,7 +392,9 @@ syms_of_macros ()
   defsubr (&Sstore_kbd_macro_event);
 
   DEFVAR_KBOARD ("defining-kbd-macro", defining_kbd_macro,
-                doc: /* Non-nil while a keyboard macro is being defined.  Don't set this!  */);
+                doc: /* Non-nil while a keyboard macro is being defined.  Don't set this!
+The value is the symbol `append' while appending to the definition of
+an existing macro.  */);
 
   DEFVAR_LISP ("executing-macro", &Vexecuting_macro,
               doc: /* Currently executing keyboard macro (string or vector); nil if none executing.  */);
@@ -397,3 +408,6 @@ syms_of_macros ()
   DEFVAR_KBOARD ("last-kbd-macro", Vlast_kbd_macro,
                 doc: /* Last kbd macro defined, as a string or vector; nil if none defined.  */);
 }
+
+/* arch-tag: d293fcc9-2266-4163-9198-7fa0de12ec9e
+   (do not change this comment) */