Mercurial > emacs
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. |