+2004-04-20 Kenichi Handa <handa@m17n.org>
+
+ * international/quail.el (quail-lookup-key): New optional arg
+ NOT-RESET-INDICES.
+ (quail-get-translations): Call quail-lookup-key with
+ NOT-RESET-INDICES t.
+ (quail-completion): Likewise.
+ (quail-lookup-map-and-concat): Likewise.
+
2004-04-20 Kenichi Handa <handa@m17n.org>
* international/quail.el (quail-update-translation): Don't insert
(t
(error "Invalid object in Quail map: %s" def))))
-(defun quail-lookup-key (key &optional len)
+(defun quail-lookup-key (key &optional len not-reset-indices)
"Lookup KEY of length LEN in the current Quail map and return the definition.
The returned value is a Quail map specific to KEY."
(or len
(if (and (consp translation) (vectorp (cdr translation)))
(progn
(setq quail-current-translations translation)
- (if (quail-forget-last-selection)
+ (if (and (not not-reset-indices) (quail-forget-last-selection))
(setcar (car quail-current-translations) 0))))))
;; We may have to reform cdr part of MAP.
(if (and (cdr map) (functionp (cdr map)))
(defun quail-get-translations ()
"Return a string containing the current possible translations."
- (let ((map (quail-lookup-key quail-current-key))
+ (let ((map (quail-lookup-key quail-current-key nil t))
(str (copy-sequence quail-current-key)))
(if quail-current-translations
(quail-update-current-translations))
(quail-setup-completion-buf)
(let ((win (get-buffer-window quail-completion-buf 'visible))
(key quail-current-key)
- (map (quail-lookup-key quail-current-key))
+ (map (quail-lookup-key quail-current-key nil t))
(require-update nil))
(with-current-buffer quail-completion-buf
(if (and win
(translation-list nil)
map)
(while (> len 0)
- (setq map (quail-lookup-key key len)
+ (setq map (quail-lookup-key key len t)
len (1- len))
(if map
(let* ((def (quail-map-definition map))