;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(make-coding-system
- 'coding-system-iso-2022-cn 2 ?C
- "Coding system ISO-2022-CN for Chinese (GB and CNS character sets)."
+ 'chinese-iso-7bit 2 ?C
+ "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN)"
'(ascii
(nil chinese-gb2312 chinese-cns11643-1)
(nil chinese-cns11643-2)
(nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
chinese-cns11643-6 chinese-cns11643-7)
- nil ascii-eol ascii-cntl seven locking-shift single-shift))
-
+ nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil
+ init-bol))
+
+(define-coding-system-alias 'chinese-iso-7bit 'iso-2022-cn)
+(define-coding-system-alias 'chinese-iso-7bit 'iso-2022-cn-ext)
+
+(define-prefix-command 'describe-chinese-environment-map)
+(define-key-after describe-language-environment-map [Chinese]
+ '("Chinese" . describe-chinese-environment-map)
+ t)
+
+(define-prefix-command 'setup-chinese-environment-map)
+(define-key-after setup-language-environment-map [Chinese]
+ '("Chinese" . setup-chinese-environment-map)
+ t)
+\f
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Chinese GB2312 (simplified)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(make-coding-system
- 'coding-system-euc-china 2 ?C
- "Coding-system of Chinese EUC (so called GB Encoding)."
+ 'chinese-iso-8bit 2 ?c
+ "ISO 2022 based EUC encoding for Chinese GB2312 (MIME:CN-GB-2312)"
'((ascii t) chinese-gb2312 chinese-sisheng nil
nil ascii-eol ascii-cntl nil nil single-shift nil))
+(define-coding-system-alias 'chinese-iso-8bit 'cn-gb-2312)
+(define-coding-system-alias 'chinese-iso-8bit 'euc-china)
+
(make-coding-system
- 'coding-system-hz 0 ?z
- "Codins-system of Hz/ZW used for Chinese (GB)."
+ 'chinese-hz 0 ?z
+ "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)"
nil)
-(put 'coding-system-hz 'post-read-conversion 'post-read-decode-hz)
-(put 'coding-system-hz 'pre-write-conversion 'pre-write-encode-hz)
+(put 'chinese-hz 'post-read-conversion 'post-read-decode-hz)
+(put 'chinese-hz 'pre-write-conversion 'pre-write-encode-hz)
+
+(define-coding-system-alias 'chinese-hz 'hz-gb-2312)
+(define-coding-system-alias 'chinese-hz 'hz)
(defun post-read-decode-hz (len)
(let ((pos (point)))
(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" '("quail-ccdospy" quail-use-package "quail/ccdospy"))
-(register-input-method
- "Chinese-GB" '("quail-ctlau" quail-use-package "quail/ctlau"))
-(register-input-method
- "Chinese-GB" '("quail-punct" quail-use-package "quail/punct"))
-(register-input-method
- "Chinese-GB" '("quail-qj" quail-use-package "quail/qj"))
-(register-input-method
- "Chinese-GB" '("quail-sw" quail-use-package "quail/sw"))
-(register-input-method
- "Chinese-GB" '("quail-ziranma" quail-use-package "quail/ziranma"))
-(register-input-method
- "Chinese-GB" '("quail-tonepy" quail-use-package "quail/tonepy"))
-(register-input-method
- "Chinese-GB" '("quail-py" quail-use-package "quail/py"))
-
-(defun setup-chinese-gb-environment ()
- (setq primary-language "Chinese-GB")
-
- (setq coding-category-iso-8-2 'coding-system-euc-china)
- (setq coding-category-iso-else 'coding-system-iso-2022-cn)
-
- (set-coding-priority
- '(coding-category-iso-7
- coding-category-iso-else
- coding-category-iso-8-2
- coding-category-big5
- coding-category-iso-8-1
- coding-category-internal
- ))
-
- (setq-default buffer-file-coding-system 'coding-system-euc-china)
- (set-terminal-coding-system 'coding-system-euc-china)
- (set-keyboard-coding-system 'coding-system-euc-china)
-
- (setq default-input-method '("Chinese-GB" . "quail-py"))
- )
-
(set-language-info-alist
- "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.")
- (setup-function . setup-chinese-gb-environment)
- (charset . (chinese-gb2312 chinese-sisheng))
- (coding-system . (coding-system-euc-china
- coding-system-hz
- coding-system-iso-2022-cn))
- (documentation . t)
- (sample-text . "Chinese (\e$AVPND\e(B,\e$AFUM(;0\e(B,\e$A::So\e(B) \e$ADc:C\e(B")))
+ "Chinese-GB" '((setup-function . (setup-chinese-gb-environment
+ . setup-chinese-environment-map))
+ (charset . (chinese-gb2312 chinese-sisheng))
+ (coding-system
+ . (chinese-iso-8bit chinese-iso-7bit chinese-hz))
+ (sample-text . "Chinese (\e$AVPND\e(B,\e$AFUM(;0\e(B,\e$A::So\e(B) \e$ADc:C\e(B")
+ (documentation . ("Support for Chinese GB2312 character set."
+ . describe-chinese-environment-map))
+ ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Chinese BIG5 (traditional)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(make-coding-system
- 'coding-system-big5 3 ?B
- "Coding-system of BIG5.")
+ 'chinese-big5 3 ?B "BIG5 8-bit encoding for Chinese (MIME:CN-BIG5)")
+
+(define-coding-system-alias 'chinese-big5 'big5)
+(define-coding-system-alias 'chinese-big5 'cn-big5)
;; Big5 font requires special encoding.
(define-ccl-program ccl-encode-big5-font
(setq font-ccl-encoder-alist
(cons (cons "big5" ccl-encode-big5-font) font-ccl-encoder-alist))
-(register-input-method
- "Chinese-BIG5" '("quail-qj-b5" quail-use-package "quail/qj-b5"))
-(register-input-method
- "Chinese-BIG5" '("quail-zozy" quail-use-package "quail/zozy"))
-(register-input-method
- "Chinese-BIG5" '("quail-tsangchi-b5" quail-use-package "quail/tsangchi-b5"))
-(register-input-method
- "Chinese-BIG5" '("quail-py-b5" quail-use-package "quail/py-b5"))
-(register-input-method
- "Chinese-BIG5" '("quail-quick-b5" quail-use-package "quail/quick-bt"))
-(register-input-method
- "Chinese-BIG5" '("quail-etzy" quail-use-package "quail/etzy"))
-(register-input-method
- "Chinese-BIG5" '("quail-ecdict" quail-use-package "quail/ecdict"))
-(register-input-method
- "Chinese-BIG5" '("quail-ctlaub" quail-use-package "quail/ctlaub"))
-(register-input-method
- "Chinese-BIG5" '("quail-array30" quail-use-package "quail/array30"))
-(register-input-method
- "Chinese-BIG5" '("quail-4corner" quail-use-package "quail/4corner"))
-
-(defun setup-chinese-big5-environment ()
- (setq primary-language "Chinese-BIG5")
-
- (setq coding-category-big5 'coding-system-big5)
- (setq coding-category-iso-else 'coding-system-iso-2022-cn)
-
- (set-coding-priority
- '(coding-category-iso-7
- coding-category-iso-else
- coding-category-big5))
-
- (setq-default buffer-file-coding-system 'coding-system-big5)
- (set-terminal-coding-system 'coding-system-big5)
- (set-keyboard-coding-system 'coding-system-big5)
-
- (setq default-input-method '("Chinese-BIG5" . "quail-py-b5"))
- )
-
(set-language-info-alist
- "Chinese-BIG5" '((setup-function . setup-chinese-big5-environment)
+ "Chinese-BIG5" '((setup-function . (setup-chinese-big5-environment
+ . setup-chinese-environment-map))
(charset . (chinese-big5-1 chinese-big5-2))
- (coding-system . (coding-system-big5
- coding-system-iso-2022-cn))
- (documentation . t)
- (sample-text . "Cantonese (\e$(0GnM$\e(B,\e$(0N]0*Hd\e(B) \e$(0*/=(\e(B, \e$(0+$)p\e(B")))
+ (coding-system . (chinese-big5 chinese-iso-7bit))
+ (sample-text . "Cantonese (\e$(0GnM$\e(B,\e$(0N]0*Hd\e(B) \e$(0*/=(\e(B, \e$(0+$)p\e(B")
+ (documentation . ("Support for Chinese Big5 character set."
+ . describe-chinese-environment-map))
+ ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Chinese CNS11643 (traditional)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(register-input-method
- "Chinese-CNS" '("quail-quick-cns" quail-use-package "quail/quick-cns"))
-(register-input-method
- "Chinese-CNS" '("quail-tsangchi-cns" quail-use-package "quail/tsangchi-cns"))
-
-(defun setup-chinese-cns-environment ()
- (setq primary-language "Chinese-CNS")
-
- (setq coding-category-iso-else 'coding-system-iso-2022-cn)
-
- (set-coding-priority
- '(coding-category-iso-7
- coding-category-iso-else
- coding-category-big5))
-
- (setq-default buffer-file-coding-system 'coding-system-iso-2022-7)
- (set-terminal-coding-system 'coding-system-iso-2022-7)
- (set-keyboard-coding-system 'coding-system-iso-2022-7)
-
- (setq default-input-method '("Chinese-CNS" . "quail-py-cns"))
- )
-
(set-language-info-alist
- "Chinese-CNS" '((setup-function . setup-chinese-cns-environment)
+ "Chinese-CNS" '((setup-function . (setup-chinese-cns-environment
+ . setup-chinese-environment-map))
(charset . (chinese-cns11643-1 chinese-cns11643-2
chinese-cns11643-3 chinese-cns11643-4
chinese-cns11643-5 chinese-cns11643-6
chinese-cns11643-7))
- (coding-system . (coding-system-iso-2022-cn))
- (documentation . t)))
+ (coding-system . (chinese-iso-7bit))
+ (documentation . ("Support for Chinese CNS character sets."
+ . describe-chinese-environment-map))
+ ))
;;; chinese.el ends here