
(defun edit-last-kbd-macro (&optional prefix buffer hook) "\
Edit the most recently defined keyboard macro." (interactive "P") (byte-code "ÄˆÅÆ	
%‡" [last-kbd-macro prefix buffer hook nil MacEdit-edit-macro (lambda (x arg) (byte-code "	‰‡" [last-kbd-macro x] 2))] 6))

(defun edit-kbd-macro (cmd &optional prefix buffer hook in-hook out-hook) "\
Edit a keyboard macro which has been assigned a name by name-last-kbd-macro.
(See also edit-last-kbd-macro.)" (interactive "CCommand name: 
P") (byte-code "Æˆ…' Ç	ƒ È	\"‚ K
†! ÉÊËÌDÍEE&‡" [cmd in-hook out-hook prefix buffer hook nil MacEdit-edit-macro funcall lambda (x arg) fset quote x] 8))

(defun read-kbd-macro (start &optional end) "\
Read the region as a keyboard macro definition.
The region is interpreted as spelled-out keystrokes, e.g., `M-x abc RET'.
The resulting macro is installed as the \"current\" keyboard macro.

Symbols:  RET, SPC, TAB, DEL, LFD, NUL; C-key; M-key.  (Must be uppercase.)
          REM marks the rest of a line as a comment.
          Whitespace is ignored; other characters are copied into the macro." (interactive "r") (byte-code "Ãˆ;ƒ Ä!‰‚, ÄÅ
\"!‰ˆÆÇ	\"…# ÆÈ	\"…, 	ÉÊO‰‡" [start last-kbd-macro end nil MacEdit-parse-keys buffer-substring string-match "\\`(" ")\\'" 2 -2] 8))

(defun MacEdit-print-macro (macro-str local-map) (byte-code "Õ ÂÉÉÉÉÉÖŽ×!ˆØ …dÙ ˆ‰ˆÚ>†` ?†` :ƒB ÛÜ@\"c‚[ Ý=ƒN Þc‚[ ß!…[ Ûà\"cˆÉ‰ˆ?ƒx ácˆâ
!ˆãcˆä‰
‚`;ƒ‰ ácˆâ!ˆãc‚`å=ƒ˜ æÉ#‚`ç=ƒ§ æèÉ#‚`é=ƒÛ êë U…Ï ìê\"ë ‰ˆ‚· ˆæÉ#+‚`í=ƒYîcˆïY…í ðXƒKäí=…
GñW…
ïY…
ðX†ò>…GóV…<í=ƒ-ô!P‰‚5óõO‰ˆÙ ˆ‚ó ˆö÷ã#ˆø!)‚V÷cˆâô!!ˆãc‚`ù=…aØ ƒúcˆë ÉûY…yüX…ÛûZë ‰ˆ…ÛûY…˜üXƒ×ìý\"ûZ\\ë ‰ˆ…ÔûY…½üXƒÐìý\"ûZ\\‰‚Ôø!‚Ûø!ˆûY…çüX†õïW†õðVƒÛþ\"c‚	öáô!ã#*‚`ÿ>ƒ%ö�@ !�A \"ˆ�B  ‚`�C =ƒ9�D �E \"‚`�F NƒN�G !‚_�@ !cˆ�H jˆ�I cˆâ!ˆ�A cˆ�J !�K �L \"……�M ÉO‰ˆGóV…^óH�N Uƒ£�D É\"‚:óH�O >ƒµ�D  ‚:óH�P U…ÂØ ƒÔácˆâôë !!ˆãc‚:óH�Q Uƒë�D �E \"‚:óH�R UƒÙ ˆƒ	ácˆâ!ˆãc‚ø!‚:óH�S Uƒ&†#�D  ‚:óH�T U…:�D �U \"ˆ�K �A \"ƒUTÉO‚Vä‰)ˆ‚†))ˆ‚ ).‡" [save-map print-escape-newlines t key-symbol key-str key-last prefix-arg this-prefix local-map nil macro-str c-u argstartchar char str ch ch2 obarray cust int nl current-local-map ((byte-code "Á!‡" [save-map use-local-map] 2)) use-local-map MacEdit-peek-char MacEdit-read-key (digit-argument negative-argument universal-argument) format "prefix-arg (%d)
" - "prefix-arg -
" numberp "prefix-arg %d
" "type \"" MacEdit-insert-string "\"
" "" digit-argument MacEdit-prefix-arg negative-argument 45 universal-argument 4 MacEdit-read-char * self-insert-command "insert " 32 126 60 (backward-delete-char delete-backward-char backward-delete-char-untabify) 0 char-to-string -1 insert "\"" MacEdit-unread-chars quoted-insert "quoted-insert
" 48 55 8 "type \"\\%03o\"
" (isearch-forward isearch-backward isearch-forward-regexp isearch-backward-regexp) symbol-name "
" MacEdit-isearch-argument execute-extended-command MacEdit-read-argument commandp MacEdit-print funcall 30 " # " MacEdit-get-interactive string-match "\\`\\*" 1 97 (98 66 68 102 70 110 115 83 120 88) 99 67 107 78 118 user-variable-p] 59))

(defun MacEdit-prefix-arg (char c-u value) (byte-code "ÆÇ	!… 	ÈW… É	[‰ˆ	Ê=…  ÉÂ‰ˆ…( ËU…: [Â‰ˆÌ ‰ˆ‚! ˆ…H ÍY…H ÎX…j ÏÇ	!ƒV 	‚W ÈÐ\"ÍZ\\Â‰ˆÌ ‰ˆ‚; ˆƒt C‚ˆ Ç	!ƒ� Ï	\"‚ˆ ÉU…ˆ Ê‰ˆÑ!)‡" [sign value nil char c-u prefix-arg 1 numberp 0 -1 - 45 MacEdit-read-char 48 57 * 10 MacEdit-unread-chars] 9))

(defun MacEdit-insert-string (str) (byte-code "ÅÆÆGW…é H‰ÇV… 
ÈW…% 
ÉZ‰ˆÊcˆ
ËWƒp 
ÌUƒ7 Íc‚m 
ÎUƒB Ïc‚m 
ÐUƒM Ñc‚m 
ÒUƒX Óc‚m 
ÔUƒc Õc‚m Ö×ØÙ
Ú\\!!\"‚à 
ÇWƒÊ 
ÛU† 
ÜUƒ‹ ÖÝØ
!\"‚Ç ‰ˆT‰GW…´ H‰ËY…´ Þ
Û\"…´ Þ
Ü\"…´ 
ÇW…¼ Æˆ‚� ˆ	OcˆS‰‚à 
ß>ƒØ àá
\"c‚à ÖÊØ
ÉZ!\"ˆT‰ˆ‚ +‡" [i j ch str t 0 nil 127 160 128 "\\M-" 32 8 "\\b" 9 "\\t" 10 "\\n" 13 "\\r" 27 "\\e" insert "\\C-" char-to-string downcase 64 34 92 "\\" /= (127 255) format "\\%03o"] 14))

(defun MacEdit-lookup-key (map) (byte-code "	… Ê	
\"ÊË 
\"

Ì!…$ 
ÍOÊ	\"‰ˆ:…- Æ‰ˆ†5 Î‰ˆÌ!…H 
ÍOÊË \"‰ˆ:…Q Æ‰ˆ†Y Î‰ˆGGVƒl ‰‚s ‰ˆGÍV…† ÏGSHÐ\"‰	ˆ,‡" [loc map macro-str glob loc-str glob-str nil key-symbol key-str key-last lookup-key current-global-map integerp 0 "" logand 127] 11))

(defun MacEdit-read-argument (&optional obarray pred) (byte-code "ËÌÍ=ÎÏÐ !ˆÑ=… GÒW†% Ó>†% Ô=…� GÎO‰ˆÔ=…[ …[ Õ
#		;…Z 	GGV…Z 	‰)†‹ Ñ=†y Ô=†n G	X…y GG\\‰ƒ… P‰‚‹ ÌÖO‰ˆ‚
 ˆPGÎO‰ˆ
ƒä Õ
#		;ƒÅ ×Ø	!!…Â 	‰‚Ê ×Ø!!ƒÔ ÙÚ\"‚à ÛcˆÜcˆÝ!ˆÞc)‚ô GÌV…ô ÜcˆÝ!ˆÞc,‡" [str min-bsp exec key-symbol str-base key-last macro-str key-str obarray comp pred "" 0 execute-extended-command nil MacEdit-lookup-key current-global-map self-insert-command 60 (backward-delete-char delete-backward-char backward-delete-char-untabify) 9 try-completion -1 commandp intern insert "
" "execute-extended-command
" "type \"" MacEdit-insert-string "\"
"] 12))

(defun MacEdit-isearch-argument nil (byte-code "ËÌÍÎ ‰…c 
ÏX† ?…c 
=?…c 
=†c 
=†c 
=†c 
=†c 
	=†c 

=†c 
Ð=†c 
Ñ=†c ?†c Ò
Ï\"…c 
ÓY…È 

=…o Ô ƒƒ Õ
!ÕÎ !QG‰‚Ä 
ÏW…Œ 
ÓY†± 
=†± 
	=†± 
=?†© G	X…± GT‰ƒ¾ Õ
!P‰‚Ä ÌÖO‰ˆ‚ ˆ
=ƒGÌU…Õ
!P‰ˆÔ ×=…í ØP‰ˆÎ ˆGÌV…þ ÙcˆÚ!ˆÛcˆÜ ˆË‰‚Ý
!ˆGÌV…ÙcˆÚ!ˆÞc+‡" [str min-bsp ch search-exit-option search-exit-char search-repeat-char search-reverse-char search-delete-char search-yank-word-char search-yank-line-char search-quote-char "" 0 nil MacEdit-read-char 127 13 9 /= 32 MacEdit-peek-char char-to-string -1 23 "" "type \"" MacEdit-insert-string "\"
" MacEdit-read-argument MacEdit-unread-chars "\\e\"
"] 15))

(defun MacEdit-read-key nil (byte-code "ÃÄ !ˆ… 	
GÅO‰‡" [key-symbol macro-str key-str MacEdit-lookup-key current-local-map nil] 5))

(defun MacEdit-peek-char nil (byte-code "GÁV…
 ÁH‡" [macro-str 0] 2))

(defun MacEdit-read-char nil (byte-code "GÁV… ÁHÂÃO‰ˆ‡" [macro-str 0 1 nil] 4))

(defun MacEdit-unread-chars (chars) (byte-code "Â!… Ã!‰ˆ… 	P‰‡" [chars macro-str integerp char-to-string] 4))

(defun MacEdit-dump (mac) (byte-code "ÂÀ!ˆÃcˆÄ	Å \"‡" [nil mac set-mark-command "

" MacEdit-print-macro current-local-map] 5))

(defun MacEdit-parse-keys (str) (byte-code "ÄÅÆGW… ÇÈ#…Æ ÉÄ!ÊÄ!ÉÄ!O	
GËV…7 
ÌHÍU…7 
ÄHÎUƒE 
ËÆO‰ˆÏ‚z 
GÐV…i 
ÄHÑU…i 
ÌHÍU…i 
ËHÎU…i 
ÒHÍUƒy Ó
ÐÆOP‰ˆÏ‚z ÅÔ
Õ\"A†¿ Ö
×\"…™ ÇØ#†“ G‰…™ Å†¿ 
GÒU…» 
ÄHÑU…» 
ÌHÍU…» ÙÚ
ËHÛ\"!†¿ 
Q‰ˆ‚ ˆ	+‡" [pos mac part str 0 "" nil string-match "[^ 	
]+" match-end match-beginning 2 1 45 77 "" 4 67 3 "C-" assoc (("NUL" . " ") ("RET" . "") ("LFD" . "
") ("TAB" . "	") ("ESC" . "") ("SPC" . " ") ("DEL" . "") ("C-?" . "") ("C-2" . " ") ("C-SPC" . " ")) equal "REM" "
" char-to-string logand 31] 14))

(defun MacEdit-read-macro (&optional map) (byte-code "† È ‰ˆÉÊË!ˆm?…5ÌÍ!†-ÌÎ!ƒ& ÏÐ!‚-ÌÑ!ƒ6 ÏÒÓÔ!P!‚-ÌÕ!ƒg ÖÓÔ!!
ÔV…c ×
Ø\"ÙU†T ÚÛ!ˆÏÒ!ˆÜ
Ø\"‰ˆ‚B )‚-ÌÝ!ƒs ÚÞ!‚-Ìß!ƒ� àá!ˆÏâp!!ˆiáW…Œ ãä!‚-Ìå!ƒ« àæ!ˆÏâp!!ˆiæW…¨ ãä!‚-Ìç!ƒÆ èÙ!SbˆÏéêëÔ!èÔ!\"!!‚-Ìì!ƒ*íÓÔ!!Óî!ïNƒå ð\"‚&ñ!†î Úò!ˆóÉ\"† ôõ\"† Úö!ˆ÷Ç#†÷ø Ç#ƒÏ!‚%Ïùú!ûQ!)+‚-Úü!ˆãÔ!ˆ‚ ˆ	)‡" [map macro-str val func arg cust keys t current-local-map "" skip-chars-forward " 	
" looking-at "#" "prefix-arg[ 	]*-[ 	]*
" MacEdit-append-chars "-" "prefix-arg[ 	]*\\(-?[0-9]+\\)[ 	]*
" "" MacEdit-match-string 1 "prefix-arg[ 	]*(\\([0-9]+\\))[ 	]*
" string-to-int % 4 0 error "Bad prefix argument value" / "prefix-arg" "Bad prefix argument syntax" "insert " forward-char 7 read forward-line -1 "type " 5 "keys \\(.*\\)
" match-end MacEdit-parse-keys buffer-substring match-beginning "\\([-a-zA-z0-9_]+\\)[ 	]*\\(.*\\)
" intern 2 MacEdit-read funcall commandp "Not an Emacs command" equal string-match "\\`#" "Unexpected argument to command" where-is-internal current-global-map "x" symbol-name "
" "Syntax error"] 54))

(defun MacEdit-append-chars (chars) (byte-code "	P‰‡" [macro-str chars] 2))

(defun MacEdit-match-string (n) (byte-code "Á!ƒ ÂÁ!Ã!\"‚ Ä‡" [n match-beginning buffer-substring match-end ""] 6))

(defun MacEdit-get-interactive (func) (byte-code "9ƒ ÃN	ƒ 	‚ ÄK!)‚I Å!Æ=…E Ç8:ƒ. Ç8‚1 È8Å
!É=…D Ê
8;…D Ê
8)†I Ë‡" [func cust int MacEdit-interactive MacEdit-get-interactive car-safe lambda 2 3 interactive 1 ""] 5))

(put (quote search-forward) (quote MacEdit-interactive) "s")

(put (quote search-backward) (quote MacEdit-interactive) "s")

(put (quote word-search-forward) (quote MacEdit-interactive) "s")

(put (quote word-search-backward) (quote MacEdit-interactive) "s")

(put (quote re-search-forward) (quote MacEdit-interactive) "s")

(put (quote re-search-backward) (quote MacEdit-interactive) "s")

(put (quote switch-to-buffer) (quote MacEdit-interactive) "B")

(put (quote kill-buffer) (quote MacEdit-interactive) "B")

(put (quote rename-buffer) (quote MacEdit-interactive) "B
B")

(put (quote goto-char) (quote MacEdit-interactive) "N")

(put (quote global-set-key) (quote MacEdit-interactive) "k
C")

(put (quote global-unset-key) (quote MacEdit-interactive) "k")

(put (quote local-set-key) (quote MacEdit-interactive) "k
C")

(put (quote local-unset-key) (quote MacEdit-interactive) "k")

(defun MacEdit-edit-macro (mac repl &optional prefix buffer hook arg) (byte-code ";† ÒÓ!ˆpÔÕ!… Ö× Ø\"Ù=Ú Û† Ü!qˆÝ ˆÞ!ˆÈ‰ˆß‰	ˆà‰
ˆáË!ˆ	‰ˆáÌ!ˆ‰ˆáÎ!ˆ‰ˆáÐ!ˆ‰ˆâ ˆãä
ƒr å‚s æç
ƒ| è‚} éê%ˆãëì!í#ˆîï!ˆð\"ˆñ!ˆebˆòó!ˆôõ!ˆöÈ!ˆî÷!ˆøù!,‡" [mac oldbuf from-calc local buf buffer MacEdit-mode-map buffer-read-only nil major-mode mode-name MacEdit-original-buffer MacEdit-replace-function repl MacEdit-replace-argument arg MacEdit-finish-hook hook error "Not a keyboard macro" get-buffer-window "*Calculator*" lookup-key current-global-map "#" calc-dispatch current-local-map get-buffer-create "*Edit Macro*" kill-all-local-variables use-local-map MacEdit-mode "Edit Macro" make-local-variable erase-buffer insert "# Keyboard Macro Editor.  Press " "M-# M-#" "C-c C-c" " to finish; press " "M-# x" "C-x k RET" " to cancel.
" "# Original keys: " key-description "

" message "Formatting keyboard macro..." MacEdit-print-macro switch-to-buffer forward-line 3 recenter (4) set-buffer-modified-p "Formatting keyboard macro...done" run-hooks MacEdit-format-hook] 25))

(defun MacEdit-finish-edit nil (interactive) (byte-code "ËˆÌÊ!… ÌÄ!… ÌÆ!… ÌÈ!… Í=†# ÎÏ!ˆpÐ ebˆÑ …p …p ÒÓ!ˆÔÕ!ˆÖ×
!…V Š
qˆØ )!	×
!…d Ù
!ˆÚ	#)ˆÒÛ!ˆÜ	!ˆ… Ú\"-‡" [major-mode buf str func MacEdit-replace-function arg MacEdit-replace-argument hook MacEdit-finish-hook mac MacEdit-original-buffer nil boundp MacEdit-mode error "This command is valid only in buffers created by edit-kbd-macro." buffer-string buffer-modified-p message "Compiling keyboard macro..." run-hooks MacEdit-compile-hook MacEdit-read-macro buffer-name current-local-map switch-to-buffer funcall "Compiling keyboard macro...done" kill-buffer] 20))

(defun MacEdit-cancel-edit nil (interactive) (byte-code "ÁˆÂ=… ÃÁ!ˆÄ ˆÅÆ!‡" [major-mode nil MacEdit-mode set-buffer-modified-p MacEdit-finish-edit message "(Cancelled)"] 4))

(defun MacEdit-mode nil "\
Keyboard Macro Editing mode.  Press C-c C-c to save and exit.
To abort the edit, just kill this buffer with C-x k RET.

The keyboard macro is represented as a series of M-x style command names.
Keystrokes which do not correspond to simple M-x commands are written as
\"type\" commands.  When you press C-c C-c, MacEdit converts each command
back into a suitable keystroke sequence; \"type\" commands are converted
directly back into keystrokes." (interactive) (byte-code "ÀˆÁÂ!‡" [nil error "This mode can be enabled only by edit-kbd-macro or edit-last-kbd-macro."] 2))

(put (quote MacEdit-mode) (quote mode-class) (quote special))

(defvar MacEdit-mode-map nil)

(if MacEdit-mode-map nil (setq MacEdit-mode-map (make-sparse-keymap)) (define-key MacEdit-mode-map "" (quote MacEdit-finish-edit)))
