Function: quail-find-key

quail-find-key is a byte-compiled function defined in quail.el.gz.

Signature

(quail-find-key CHAR)

Documentation

Return a list of keys to type to input CHAR in the current input method.

If CHAR is an ASCII character and can be input by typing itself, return t.

Probably introduced at or before Emacs version 22.1.

Source Code

;; Defined in /usr/src/emacs/lisp/international/quail.el.gz
(defun quail-find-key (char)
  "Return a list of keys to type to input CHAR in the current input method.
If CHAR is an ASCII character and can be input by typing itself, return t."
  (let ((decode-map (or (and (or (not quail-decode-map-generated)
				 (and (eq (car quail-decode-map-generated) (quail-map))
				      (eq (cdr quail-decode-map-generated)
					  (or buffer-file-coding-system t))))
			     (quail-decode-map))
			(let ((map (quail-gen-decode-map)))
			  (setq quail-decode-map-generated
				(cons (quail-map) (or buffer-file-coding-system t)))
			  (setcar (nthcdr 10 quail-current-package) map)
			  map)))
	(key-list nil))
    (if (consp decode-map)
	(let ((str (string char)))
          (mapc (lambda (elt)
                  (if (string= str (car elt))
                      (setq key-list (cons (cdr elt) key-list))))
		(cdr decode-map)))
      (let ((key-head (aref decode-map char)))
	(if (stringp key-head)
	    (setq key-list (quail-find-key1
			    (quail-lookup-key key-head nil t)
			    key-head char nil))
          (mapc (lambda (elt)
                  (setq key-list
                        (quail-find-key1
                         (quail-lookup-key elt nil t) elt char key-list)))
		key-head))))
    (or key-list
	(and (< char 128)
	     (not (quail-lookup-key (string char) 1))))))