diff options
| author | Kenichi Handa | 2000-06-19 05:09:55 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2000-06-19 05:09:55 +0000 |
| commit | 7bd539622d34041288cf73486c48b87dedd91971 (patch) | |
| tree | f1f4feb3d504995bef1b2686ee5abb3949b1ad5d | |
| parent | 10d7bf846ada075aa132dc26447c5026a11cafdd (diff) | |
| download | emacs-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.el | 57 |
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 |