2001-03-05 Kenichi Handa <handa@etl.go.jp>
+ * international/quail.el (quail-title): Fix for the case that a
+ title of an input method is specified by a list of the same form
+ as used in mode-line-format.
+
* international/mule-cmds.el (activate-input-method): If
current-input-method-title is set by activating INPUT-METHOD,
respect that value.
(nth 0 quail-current-package))
(defsubst quail-title ()
"Return the title of the current Quail package."
- (nth 1 quail-current-package))
+ (let ((title (nth 1 quail-current-package)))
+ ;; TITLE may be a string or a list. If it is a list, each element
+ ;; is a string or the form (VAR STR1 STR2), and the interpretation
+ ;; of the list is the same as that of mode-line-format.
+ (if (stringp title)
+ title
+ (condition-case nil
+ (mapconcat
+ (lambda (x)
+ (cond ((stringp x) x)
+ ((and (listp x) (symbolp (car x)) (= (length x) 3))
+ (if (symbol-value (car x))
+ (nth 1 x) (nth 2 x)))
+ (t "")))
+ title "")
+ (error "")))))
(defsubst quail-map ()
"Return the translation map of the current Quail package."
(nth 2 quail-current-package))