]> git.eshelyaron.com Git - emacs.git/commitdiff
(insert-kbd-macro): Specially handle C-\, M-\ and C-M-\.
authorRichard M. Stallman <rms@gnu.org>
Tue, 13 Dec 1994 18:47:37 +0000 (18:47 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 13 Dec 1994 18:47:37 +0000 (18:47 +0000)
Only convert the character syntax if definition is a string.

lisp/macros.el

index afae6e445001c33ef189f663e1723a13f1486721..ca588fa995fc3e5c3678e4536fc8820df94bcf65 100644 (file)
@@ -74,37 +74,47 @@ use this command, and then save the file."
       (prin1 definition (current-buffer))
       (setq end (point-marker))
       (goto-char beg)
-      (while (< (point) end)
-       (let ((char (following-char)))
-         (cond ((= char 0)
-                (delete-region (point) (1+ (point)))
-                (insert "\\C-@"))
-               ((< char 27)
-                (delete-region (point) (1+ (point)))
-                (insert "\\C-" (+ 96 char)))
-               ((< char 32)
-                (delete-region (point) (1+ (point)))
-                (insert "\\C-" (+ 64 char)))
-               ((< char 127)
-                (forward-char 1))
-               ((= char 127)
-                (delete-region (point) (1+ (point)))
-                (insert "\\C-?"))
-               ((= char 128)
-                (delete-region (point) (1+ (point)))
-                (insert "\\M-\\C-@"))
-               ((< char 155)
-                (delete-region (point) (1+ (point)))
-                (insert "\\M-\\C-" (- char 32)))
-               ((< char 160)
-                (delete-region (point) (1+ (point)))
-                (insert "\\M-\\C-" (- char 64)))
-               ((< char 255)
-                (delete-region (point) (1+ (point)))
-                (insert "\\M-" (- char 128)))
-               ((= char 255)
-                (delete-region (point) (1+ (point)))
-                (insert "\\M-\\C-?"))))))
+      (if (stringp definition)
+         (while (< (point) end)
+           (let ((char (following-char)))
+             (cond ((= char 0)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\C-@"))
+                   ((< char 27)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\C-" (+ 96 char)))
+                   ((= char ?\C-\\)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\C-\\\\"))
+                   ((< char 32)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\C-" (+ 64 char)))
+                   ((< char 127)
+                    (forward-char 1))
+                   ((= char 127)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\C-?"))
+                   ((= char 128)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\M-\\C-@"))
+                   ((= char (aref "\M-\C-\\" 0))
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\M-\\C-\\\\"))
+                   ((< char 155)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\M-\\C-" (- char 32)))
+                   ((< char 160)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\M-\\C-" (- char 64)))
+                   ((= char (aref "\M-\\" 0))
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\M-\\\\"))
+                   ((< char 255)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\M-" (- char 128)))
+                   ((= char 255)
+                    (delete-region (point) (1+ (point)))
+                    (insert "\\M-\\C-?")))))))
     (insert ")\n")
     (if keys
        (let ((keys (where-is-internal macroname '(keymap))))