comparison lisp/international/mule-cmds.el @ 48808:3928ea1dee22

(current-language-environment-custom-type): New fun. (set-language-info): Use it. (current-language-environment): Fix custom type.
author Markus Rost <rost@math.uni-bielefeld.de>
date Wed, 11 Dec 2002 21:29:14 +0000
parents 7b77f5edeace
children 60a4a6de5633
comparison
equal deleted inserted replaced
48807:54fb272217f5 48808:3928ea1dee22
983 (setq key-slot (assq key lang-slot)) 983 (setq key-slot (assq key lang-slot))
984 (if (null key-slot) ; If no slot for the key, add it. 984 (if (null key-slot) ; If no slot for the key, add it.
985 (progn 985 (progn
986 (setq key-slot (list key)) 986 (setq key-slot (list key))
987 (setcdr lang-slot (cons key-slot (cdr lang-slot))))) 987 (setcdr lang-slot (cons key-slot (cdr lang-slot)))))
988 (setcdr key-slot (purecopy info)))) 988 (setcdr key-slot (purecopy info))
989 (put 'current-language-environment 'custom-type
990 (current-language-environment-custom-type))))
989 991
990 (defun set-language-info-alist (lang-env alist &optional parents) 992 (defun set-language-info-alist (lang-env alist &optional parents)
991 "Store ALIST as the definition of language environment LANG-ENV. 993 "Store ALIST as the definition of language environment LANG-ENV.
992 ALIST is an alist of KEY and INFO values. See the documentation of 994 ALIST is an alist of KEY and INFO values. See the documentation of
993 `language-info-alist' for the meanings of KEY and INFO. 995 `language-info-alist' for the meanings of KEY and INFO.
1483 (prog1 1485 (prog1
1484 (set-language-environment language-name) 1486 (set-language-environment language-name)
1485 (customize-mark-as-set 'current-language-environment)) 1487 (customize-mark-as-set 'current-language-environment))
1486 (error "Bogus calling sequence")))) 1488 (error "Bogus calling sequence"))))
1487 1489
1490 (defun current-language-environment-custom-type ()
1491 "Return a custom type for `current-language-environment'.
1492 This is based on `language-info-alist'."
1493 (cons 'choice (mapcar (lambda (lang)
1494 (list 'const (car lang)))
1495 language-info-alist)))
1496
1488 (defcustom current-language-environment "English" 1497 (defcustom current-language-environment "English"
1489 "The last language environment specified with `set-language-environment'. 1498 "The last language environment specified with `set-language-environment'.
1490 This variable should be set only with \\[customize], which is equivalent 1499 This variable should be set only with \\[customize], which is equivalent
1491 to using the function `set-language-environment'." 1500 to using the function `set-language-environment'."
1492 :link '(custom-manual "(emacs)Language Environments") 1501 :link '(custom-manual "(emacs)Language Environments")
1496 (if (symbolp current-language-environment) 1505 (if (symbolp current-language-environment)
1497 (symbol-name current-language-environment) 1506 (symbol-name current-language-environment)
1498 current-language-environment) 1507 current-language-environment)
1499 language-info-alist)) 1508 language-info-alist))
1500 "English")) 1509 "English"))
1501 :type (cons 'choice (mapcar (lambda (lang) 1510 ;; a better custom type will be set with `set-language-info'.
1502 (list 'const (car lang))) 1511 :type 'string
1503 language-info-alist))
1504 :initialize 'custom-initialize-default 1512 :initialize 'custom-initialize-default
1505 :group 'mule) 1513 :group 'mule)
1506 1514
1507 (defun reset-language-environment () 1515 (defun reset-language-environment ()
1508 "Reset multilingual environment of Emacs to the default status. 1516 "Reset multilingual environment of Emacs to the default status.