aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2000-06-19 05:09:55 +0000
committerKenichi Handa2000-06-19 05:09:55 +0000
commit7bd539622d34041288cf73486c48b87dedd91971 (patch)
treef1f4feb3d504995bef1b2686ee5abb3949b1ad5d
parent10d7bf846ada075aa132dc26447c5026a11cafdd (diff)
downloademacs-7bd539622d34041288cf73486c48b87dedd91971.tar.gz
emacs-7bd539622d34041288cf73486c48b87dedd91971.zip
(cp-coding-system-for-codepage-1): Delete special codes for
generating xxx-dos coding system because now a CCL based coding system can handle EOL conversion by default.
-rw-r--r--lisp/international/codepage.el57
1 files changed, 8 insertions, 49 deletions
diff --git a/lisp/international/codepage.el b/lisp/international/codepage.el
index 2752322975c..0243bb8fb3a 100644
--- a/lisp/international/codepage.el
+++ b/lisp/international/codepage.el
@@ -63,81 +63,40 @@ variety is actually just an alias for the -unix variety)."
63 (logand dos-unsupported-char-glyph 255) 63 (logand dos-unsupported-char-glyph 255)
64 127) 64 127)
65 ??)) 65 ??))
66 (ccl-decoder-dos 66 (ccl-decoder
67 (ccl-compile
68 `(4 (loop (read r1)
69 (if (r1 != ?\r)
70 (if (r1 >= 128)
71 ((r0 = ,(charset-id 'ascii))
72 (translate-character ,decoder r0 r1)
73 (if (r0 == ,(charset-id 'ascii))
74 (write r1)
75 (write-multibyte-character r0 r1)))
76 (write r1)))
77 (repeat)))))
78 (ccl-decoder-unix
79 (ccl-compile 67 (ccl-compile
68 ;; The 4 here supplies the buf_magnification parameter
69 ;; for the CCL program. A multibyte character may take
70 ;; at most 4-byte.
80 `(4 (loop (read r1) 71 `(4 (loop (read r1)
81 (if (r1 >= 128) 72 (if (r1 >= 128)
82 ((r0 = ,(charset-id 'ascii)) 73 ((r0 = ,(charset-id 'ascii))
83 (translate-character ,decoder r0 r1) 74 (translate-character ,decoder r0 r1)
84 (if (r0 == ,(charset-id 'ascii)) 75 (write-multibyte-character r0 r1))
85 (write r1)
86 (write-multibyte-character r0 r1)))
87 (write r1)) 76 (write r1))
88 (repeat))))) 77 (repeat)))))
89 (ccl-encoder-dos 78 (ccl-encoder
90 (ccl-compile 79 (ccl-compile
91 ;; The 2 here supplies the buf_magnification parameter for 80 ;; The 2 here supplies the buf_magnification parameter for
92 ;; the CCL program. Since the -dos coding system generates 81 ;; the CCL program. Since the -dos coding system generates
93 ;; \r\n for each \n, a factor of 2 covers even the worst case 82 ;; \r\n for each \n, a factor of 2 covers even the worst case
94 ;; of empty lines with a single \n. 83 ;; of empty lines with a single \n.
95 `(2 (loop (read-multibyte-character r0 r1) 84 `(2 (loop (read-multibyte-character r0 r1)
96 (if (r1 == ?\n)
97 (write ?\r)
98 (if (r0 != ,(charset-id 'ascii))
99 ((translate-character ,encoder r0 r1)
100 (if (r0 == ,(charset-id 'japanese-jisx0208))
101 ((r1 = ,undef)
102 (write r1))))))
103 (write-repeat r1)))))
104 (ccl-encoder-unix
105 (ccl-compile
106 `(1 (loop (read-multibyte-character r0 r1)
107 (if (r0 != ,(charset-id 'ascii)) 85 (if (r0 != ,(charset-id 'ascii))
108 ((translate-character ,encoder r0 r1) 86 ((translate-character ,encoder r0 r1)
109 (if (r0 == ,(charset-id 'japanese-jisx0208)) 87 (if (r0 == ,(charset-id 'japanese-jisx0208))
110 ((r1 = ,undef) 88 ((r1 = ,undef)
111 (write r1))))) 89 (write r1)))))
112 (write-repeat r1)))))) 90 (write-repeat r1))))))
113 (if (memq coding coding-system-list)
114 (setq coding-system-list (delq coding coding-system-list)))
115 91
116 ;; Make coding system CODING. 92 ;; Make coding system CODING.
117 (make-coding-system 93 (make-coding-system
118 coding 4 mnemonic 94 coding 4 mnemonic
119 (concat "8-bit encoding of " (symbol-name iso-name) 95 (concat "8-bit encoding of " (symbol-name iso-name)
120 " characters using IBM codepage " coding-name) 96 " characters using IBM codepage " coding-name)
121 (cons ccl-decoder-unix ccl-encoder-unix) 97 (cons ccl-decoder ccl-encoder)
122 `((safe-charsets ascii eight-bit-control eight-bit-graphic ,iso-name) 98 `((safe-charsets ascii eight-bit-control eight-bit-graphic ,iso-name)
123 (valid-codes (0 . 255)) 99 (valid-codes (0 . 255)))))))
124 (charset-origin-alist ,(list iso-name (symbol-name coding) encoder))))
125 ;;; Make coding systems CODING-unix, CODING-dos, CODING-mac.
126 (make-subsidiary-coding-system coding)
127 (put coding 'eol-type (vector (intern (format "%s-unix" coding))
128 (intern (format "%s-dos" coding))
129 (intern (format "%s-mac" coding))))
130 ;; Change CCL code for CODING-dos.
131 (let ((coding-spec (copy-sequence (get coding 'coding-system))))
132 (aset coding-spec 4
133 (cons (check-ccl-program
134 ccl-decoder-dos
135 (intern (format "%s-dos-decoder" coding)))
136 (check-ccl-program
137 ccl-encoder-dos
138 (intern (format "%s-dos-encoder" coding)))))
139 (put (intern (concat coding-name "-dos")) 'coding-system
140 coding-spec)))))
141 100
142(defun cp-decoding-vector-for-codepage (table charset offset) 101(defun cp-decoding-vector-for-codepage (table charset offset)
143 "Create a vector for decoding IBM PC characters using conversion table 102 "Create a vector for decoding IBM PC characters using conversion table