Function: quail-gen-decode-map1
quail-gen-decode-map1 is a byte-compiled function defined in
quail.el.gz.
Signature
(quail-gen-decode-map1 MAP KEY TABLE)
Source Code
;; Defined in /usr/src/emacs/lisp/international/quail.el.gz
;; Helper function for quail-gen-decode-map. Store key strings to
;; type each character under MAP in TABLE (char-table). MAP is an
;; element of the current Quail map reached by typing keys in KEY
;; (string).
(defun quail-gen-decode-map1 (map key table)
(when (and (consp map) (listp (cdr map)))
(let ((trans (car map)))
(cond ((integerp trans)
(quail-store-decode-map-key table trans key))
((stringp trans)
(dotimes (i (length trans))
(quail-store-decode-map-key table (aref trans i) key)))
((or (vectorp trans)
(and (consp trans)
(setq trans (cdr trans))))
(dotimes (i (length trans))
(let ((elt (aref trans i)))
(if (stringp elt)
(if (= (length elt) 1)
(quail-store-decode-map-key table (aref elt 0) key))
(quail-store-decode-map-key table elt key)))))))
(if (> (length key) 1)
(dolist (elt (cdr map))
(quail-gen-decode-map1 (cdr elt) key table))
(dolist (elt (cdr map))
(quail-gen-decode-map1 (cdr elt) (format "%s%c" key (car elt))
table)))))