comparison lisp/language/chinese.el @ 20109:b68cac3f8e3a

Use coding-system-put to set coding system properties, post-read-conversion and pre-write-conversion. (post-read-decode-hz): Return the result of decode-hz-region. (pre-write-encode-hz): Do not change the value of last-coding-system.
author Kenichi Handa <handa@m17n.org>
date Tue, 21 Oct 1997 10:45:26 +0000
parents 383d11185239
children 36eb3e583396
comparison
equal deleted inserted replaced
20108:00b744016673 20109:b68cac3f8e3a
72 72
73 (make-coding-system 73 (make-coding-system
74 'chinese-hz 0 ?z 74 'chinese-hz 0 ?z
75 "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)" 75 "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)"
76 nil) 76 nil)
77 (put 'chinese-hz 'post-read-conversion 'post-read-decode-hz) 77 (coding-system-put 'chinese-hz 'post-read-conversion 'post-read-decode-hz)
78 (put 'chinese-hz 'pre-write-conversion 'pre-write-encode-hz) 78 (coding-system-put 'chinese-hz 'pre-write-conversion 'pre-write-encode-hz)
79 79
80 (define-coding-system-alias 'hz-gb-2312 'chinese-hz) 80 (define-coding-system-alias 'hz-gb-2312 'chinese-hz)
81 (define-coding-system-alias 'hz 'chinese-hz) 81 (define-coding-system-alias 'hz 'chinese-hz)
82 82
83 (defun post-read-decode-hz (len) 83 (defun post-read-decode-hz (len)
84 (let ((pos (point))) 84 (let ((pos (point))
85 (decode-hz-region pos (+ pos len)))) 85 (buffer-modified-p (buffer-modified-p))
86 last-coding-system-used)
87 (prog1
88 (decode-hz-region pos (+ pos len))
89 (set-buffer-modified-p buffer-modified-p))))
86 90
87 (defun pre-write-encode-hz (from to) 91 (defun pre-write-encode-hz (from to)
88 (let ((buf (current-buffer)) 92 (let ((buf (current-buffer))
89 (work (get-buffer-create " *pre-write-encoding-work*"))) 93 (work (get-buffer-create " *pre-write-encoding-work*")))
90 (set-buffer work) 94 (set-buffer work)
91 (erase-buffer) 95 (erase-buffer)
92 (if (stringp from) 96 (if (stringp from)
93 (insert from) 97 (insert from)
94 (insert-buffer-substring buf from to)) 98 (insert-buffer-substring buf from to))
95 (encode-hz-region 1 (point-max)) 99 (let (last-coding-system-used)
100 (encode-hz-region 1 (point-max)))
96 nil)) 101 nil))
97 102
98 (set-language-info-alist 103 (set-language-info-alist
99 "Chinese-GB" '((setup-function . (setup-chinese-gb-environment 104 "Chinese-GB" '((setup-function . (setup-chinese-gb-environment
100 . setup-chinese-environment-map)) 105 . setup-chinese-environment-map))