
(byte-code "ÀÁÂ\"ˆÃÁÄÅ#ˆÆÇ!ˆÀÈÉ\"ˆÃÈÊÅ#ˆÆÇ!ˆÈ‡" [setplist actypes::kbd-key (variable-documentation "Executes the function binding for KEY-SEQUENCE, delimited by {}.
Returns t if a KEY-SEQUENCE has a binding, else nil." action (lambda (key-sequence) (interactive "kKeyboard key to execute (no {}): ") (kbd-key:act key-sequence))) symset:add actypes types run-hooks htype:create-hook ibtypes::kbd-key (variable-documentation "Executes a key sequence delimited by curly braces.
Key sequences should be in human readable form, e.g. {C-b}.
Forms such as {}, {}, and {^b} will not be recognized." at-p (if (and (fboundp (quote br-in-browser)) (br-in-browser)) nil (let* ((seq-and-pos (or (hbut:label-p t "{`" "'}" t) (hbut:label-p t "{" "}" t))) (key-sequence (car seq-and-pos)) (binding (and (stringp key-sequence) (key-binding (kbd-key:normalize key-sequence))))) (and binding (not (integerp binding)) (ibut:label-set seq-and-pos) (hact (quote kbd-key) key-sequence)))) to-p nil style nil) ibtypes] 8)

(defun kbd-key:act (key-sequence) "\
Executes the command binding for KEY-SEQUENCE.
Returns t if KEY-SEQUENCE has a binding, else nil." (interactive "kKeyboard key to execute (no {}): ") (byte-code "Á‰ˆÅÆ!!
… Ç
!ˆÄ)‡" [current-prefix-arg nil binding key-sequence t key-binding kbd-key:normalize call-interactively] 4))

(defun kbd-key:doc (key &optional full) "\
Shows first line of doc for binding of keyboard KEY in minibuffer.
With optional FULL, displays full documentation for command." (interactive "kKey sequence: 
P") (byte-code "ÅÆ	!!Ç!?… )… È!É
ƒ2 †/ ÊË
\"Ì
ÍO!‰‚= ÎÏ	†: Ð#‰ˆ…C 
…S ƒP Ñ!‚S Ò
!+‡" [cmd key doc end-line full key-binding kbd-key:normalize integerp documentation nil string-match "[
]" substitute-command-keys 0 format "No documentation for {%s} %s" "" describe-function message] 10))

(defun kbd-key:help (but) "\
Display documentation for binding of keyboard key given by BUT's label." (byte-code "ÂÃ	Ä\"!… ÅÆ\")‡" [kbd-key but hbut:key-to-label hattr:get lbl-key kbd-key:doc full] 5))

(defun kbd-key:normalize (key-sequence) "\
Returns KEY-SEQUENCE normalized into a form that can be parsed by commands." (interactive "kKeyboard key sequence to normalize (no {}): ") (byte-code "ÊÊË!pÊÇÌÍ
Î#ÌÏ
Ð#ÌÑ
Ò#ÌÓ
Ô#ÌÕ
Ö#Ì×
Ø#ÌÙ
Ú#‰ˆÛÜ
\"…Z Ý
Þß!àß!O!
àá!ÊO‰ˆ‚; ˆÊ	Ûâ
\"…™ <?†u ã@‰	!?… äå‰	ˆæ	ç\"		ÊB
àá!ÊO‰ˆ‚^ )ˆÌè
é#‰ˆÌê
ë#.‡" [start end norm-key-seq key-sequence obuf case-fold-search case-replace t current-prefix-arg arg-val nil copy-sequence hypb:replace-match-string "[ 	
]+" "" "@key{SPC}\\|SPC" " " "@key{DEL}\\|DEL" "" "@key{RET}\\|@key{RTN}\\|RET\\|RTN" "" "ESCESC" "›" "@key{ESC}\\|ESC" "M-" "\\\\\\([{}]\\)" "\\1" string-match "\\`\\(C-u\\|M-\\)\\(-?[0-9]+\\)" string-to-int match-beginning 2 match-end 0 "\\`C-u" integerp (1) 1 * 4 "C-\\(.\\)" (lambda (str) (char-to-string (1+ (- (downcase (string-to-char (substring str (match-beginning 1) (1+ (match-beginning 1))))) 97)))) "M-\\(.\\)" (lambda (str) (char-to-string (+ (downcase (string-to-char (substring str (match-beginning 1) (1+ (match-beginning 1))))) 128)))] 22))

(provide (quote hib-kbd))
