From fab8252e84c7d22b118b61e9581395a7c0295ae6 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Mon, 12 May 1997 07:00:05 +0000 Subject: [PATCH] Make functions setup-LANGUAGE-environment interactive and add new functions describe-LANGUAGE-support for all LANGUAGEs supported. Remove resisterations of input methods which use the function encoded-kbd-select-terminal. (pre-write-encode-hz): Make it work for the case the arg FROM is a string. (setup-chinese-cns-environemnt): Set default-input-method to quail-quich-cns. --- lisp/language/chinese.el | 69 +++++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 19 deletions(-) diff --git a/lisp/language/chinese.el b/lisp/language/chinese.el index aa3ddcf4d8..e7de1e8c53 100644 --- a/lisp/language/chinese.el +++ b/lisp/language/chinese.el @@ -46,11 +46,22 @@ (define-coding-system-alias 'iso-2022-cn 'iso-2022-cn-ext) -(set-language-info - "Chinese" 'documentation -"Emacs provides three kinds of Chinese support: Chinese-GB, -Chinese-BIG5, and Chinese-CNS. Please specify one of them to get more -information.") +(defun describe-chinese-support () + "Describe how Emacs supports Chinese." + (interactive) + (with-output-to-temp-buffer "*Help*" + (princ (get-language-info "Chinese" 'documentation)) + (princ "\n"))) + +(set-language-info-alist + "Chinese" '((describe-function . describe-chinese-support) + (documentation . "\ +Emacs provides the following three kinds of Chinese support: + Chinese-GB: for users of the charset GB2312 + Chinese-BIG5: for users of the charset Big5 + Chinese-CNS: for users of the charset CNS11643 family +Please specify one of them to get more information.") + )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Chinese GB2312 (simplified) @@ -81,14 +92,13 @@ information.") (let ((buf (current-buffer)) (work (get-buffer-create " *pre-write-encoding-work*"))) (set-buffer work) - (widen) (erase-buffer) - (insert-buffer-substring buf from to) + (if (stringp from) + (insert from) + (insert-buffer-substring buf from to)) (encode-hz-region 1 (point-max)) nil)) -(register-input-method - "Chinese-GB" '("cxterm-gb" encoded-kbd-select-terminal cn-gb-2312)) (register-input-method "Chinese-GB" '("quail-ccdospy" quail-use-package "quail/ccdospy")) (register-input-method @@ -107,6 +117,8 @@ information.") "Chinese-GB" '("quail-py" quail-use-package "quail/py")) (defun setup-chinese-gb-environment () + "Setup multilingual environment (MULE) for Chinese GB2312 users." + (interactive) (setq primary-language "Chinese-GB") (setq coding-category-iso-8-2 'cn-gb-2312) @@ -129,13 +141,18 @@ information.") (setq default-input-method '("Chinese-GB" . "quail-py")) ) +(defun describe-chinese-gb-support () + "Describe how Emacs supports Chinese for GB2312 users." + (interactive) + (describe-language-support-internal "Chinese-GB")) + (set-language-info-alist - "Chinese-GB" '((documentation . t) - (setup-function . setup-chinese-gb-environment) + "Chinese-GB" '((setup-function . setup-chinese-gb-environment) + (describe-function . describe-chinese-gb-support) (charset . (chinese-gb2312 chinese-sisheng)) (coding-system . (cn-gb-2312 hz-gb-2312 iso-2022-cn)) - (documentation . t) - (sample-text . "Chinese ($AVPND(B,$AFUM(;0(B,$A::So(B) $ADc:C(B"))) + (sample-text . "Chinese ($AVPND(B,$AFUM(;0(B,$A::So(B) $ADc:C(B") + (documentation . nil))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Chinese BIG5 (traditional) @@ -165,8 +182,6 @@ information.") (setq font-ccl-encoder-alist (cons (cons "big5" ccl-encode-big5-font) font-ccl-encoder-alist)) -(register-input-method - "Chinese-BIG5" '("cxterm-big5" encoded-kbd-select-terminal big5)) (register-input-method "Chinese-BIG5" '("quail-qj-b5" quail-use-package "quail/qj-b5")) (register-input-method @@ -189,6 +204,8 @@ information.") "Chinese-BIG5" '("quail-4corner" quail-use-package "quail/4corner")) (defun setup-chinese-big5-environment () + "Setup multilingual environment (MULE) for Chinese Big5 users." + (interactive) (setq primary-language "Chinese-BIG5") (setq coding-category-big5 'cn-big5) @@ -208,12 +225,18 @@ information.") (setq default-input-method '("Chinese-BIG5" . "quail-py-b5")) ) +(defun describe-chinese-big5-support () + "Describe how Emacs supports Chinese for Big5 users." + (interactive) + (describe-language-support-internal "Chinese-BIG5")) + (set-language-info-alist "Chinese-BIG5" '((setup-function . setup-chinese-big5-environment) + (describe-function . describe-chinese-big5-support) (charset . (chinese-big5-1 chinese-big5-2)) (coding-system . (cn-big5 iso-2022-cn)) - (documentation . t) - (sample-text . "Cantonese ($(0GnM$(B,$(0N]0*Hd(B) $(0*/=((B, $(0+$)p(B"))) + (sample-text . "Cantonese ($(0GnM$(B,$(0N]0*Hd(B) $(0*/=((B, $(0+$)p(B") + (documentation . nil))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Chinese CNS11643 (traditional) @@ -225,6 +248,8 @@ information.") "Chinese-CNS" '("quail-tsangchi-cns" quail-use-package "quail/tsangchi-cns")) (defun setup-chinese-cns-environment () + "Setup multilingual environment (MULE) for Chinese CNS11643 family users." + (interactive) (setq primary-language "Chinese-CNS") (setq coding-category-iso-else 'iso-2022-cn) @@ -241,16 +266,22 @@ information.") (set-terminal-coding-system 'iso-2022-cn) (set-keyboard-coding-system 'iso-2022-cn) - (setq default-input-method '("Chinese-CNS" . "quail-py-cns")) + (setq default-input-method '("Chinese-CNS" . "quail-quick-cns")) ) +(defun describe-chinese-cns-support () + "Describe how Emacs supports Chinese for CNS11643 family users." + (interactive) + (describe-language-support-internal "Chinese-CNS")) + (set-language-info-alist "Chinese-CNS" '((setup-function . setup-chinese-cns-environment) + (describe-function . describe-chinese-cns-support) (charset . (chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7)) (coding-system . (iso-2022-cn)) - (documentation . t))) + (documentation . nil))) ;;; chinese.el ends here -- 2.39.2