summaryrefslogtreecommitdiff
path: root/lisp/international
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2001-03-05 11:37:33 +0000
committerKenichi Handa <handa@m17n.org>2001-03-05 11:37:33 +0000
commit341cd4f01db7f40a32c29d4c64741128d11b54c3 (patch)
tree7ad8f23dba867e44d8a09cfe9847e945389cf824 /lisp/international
parentc28b847bfe2a0551f3c4808bc97d0c7a3198f989 (diff)
downloademacs-341cd4f01db7f40a32c29d4c64741128d11b54c3.tar.gz
(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.
Diffstat (limited to 'lisp/international')
-rw-r--r--lisp/international/quail.el17
1 files changed, 16 insertions, 1 deletions
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index 6d26a01aa35..54712c31dcd 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -127,7 +127,22 @@ See the documentation of `quail-define-package' for the other elements.")
(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))