mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Remove eval-when-compile.
(cyrillic-koi8-r-nonascii-translation-table): Define it as a translation table made from cyrillic-koi8-r-decode-table. (cyrillic-koi8-r-encode-table): Define it as a translation table made from the reverse map of above. (ccl-decode-koi8): Use translate-character. (ccl-encode-koi8, ccl-encode-koi8-font): Likewize (cyrillic-alternativnyj-nonascii-translation-table): Define it as a translation table made from cyrillic-alternativnyj-decode-table. (cyrillic-alternativnyj-encode-table): Define it as a translation table made from the reverse map of above. (ccl-decode-alternativnyj): Use translate-character. (ccl-encode-alternativnyj, ccl-encode-alternativnyj-font): Likewize
This commit is contained in:
parent
0d833551c7
commit
1f487ef8ac
1 changed files with 45 additions and 67 deletions
|
|
@ -57,8 +57,6 @@
|
|||
|
||||
;; KOI-8 staff
|
||||
|
||||
(eval-and-compile
|
||||
|
||||
(defvar cyrillic-koi8-r-decode-table
|
||||
[
|
||||
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
|
|
@ -79,37 +77,31 @@
|
|||
?,L?(B ?,LO(B ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,L6(B ?,L2(B ?,LL(B ?,LK(B ?,L7(B ?,LH(B ?,LM(B ?,LI(B ?,LG(B ?,LJ(B ]
|
||||
"Cyrillic KOI8-R decoding table.")
|
||||
|
||||
(defvar cyrillic-koi8-r-encode-table
|
||||
(let ((table (make-vector 256 32))
|
||||
(i 0))
|
||||
(while (< i 256)
|
||||
(let* ((ch (aref cyrillic-koi8-r-decode-table i))
|
||||
(split (split-char ch)))
|
||||
(if (eq (car split) 'cyrillic-iso8859-5)
|
||||
(aset table (logior (nth 1 split) 128) i)
|
||||
(if (/= ch 32)
|
||||
(aset table ch i))))
|
||||
(setq i (1+ i)))
|
||||
table)
|
||||
"Cyrillic KOI8-R encoding table.")
|
||||
|
||||
)
|
||||
(let ((table (make-translation-table-from-vector
|
||||
cyrillic-koi8-r-decode-table)))
|
||||
(define-translation-table 'cyrillic-koi8-r-nonascii-translation-table table)
|
||||
(define-translation-table 'cyrillic-koi8-r-encode-table
|
||||
(char-table-extra-slot table 0)))
|
||||
|
||||
(define-ccl-program ccl-decode-koi8
|
||||
`(3
|
||||
((read r0)
|
||||
(loop
|
||||
(write-read-repeat r0 ,cyrillic-koi8-r-decode-table))))
|
||||
((loop
|
||||
(r0 = 0)
|
||||
(read r1)
|
||||
(if (r1 < 128)
|
||||
(write-repeat r1)
|
||||
((translate-character cyrillic-koi8-r-nonascii-translation-table r0 r1)
|
||||
(write-multibyte-character r0 r1)
|
||||
(repeat))))))
|
||||
"CCL program to decode KOI8.")
|
||||
|
||||
(define-ccl-program ccl-encode-koi8
|
||||
`(1
|
||||
((read r0)
|
||||
(loop
|
||||
(if (r0 != ,(charset-id 'cyrillic-iso8859-5))
|
||||
(write-read-repeat r0)
|
||||
((read r0)
|
||||
(write-read-repeat r0 , cyrillic-koi8-r-encode-table))))))
|
||||
((loop
|
||||
(read-multibyte-character r0 r1)
|
||||
(if (r0 == ,(charset-id 'cyrillic-iso8859-5))
|
||||
(translate-character cyrillic-koi8-r-encode-table r0 r1))
|
||||
(write-repeat r1))))
|
||||
"CCL program to encode KOI8.")
|
||||
|
||||
(make-coding-system
|
||||
|
|
@ -131,21 +123,17 @@
|
|||
|
||||
(define-ccl-program ccl-encode-koi8-font
|
||||
`(0
|
||||
((r1 |= 128)
|
||||
(r1 = r1 ,cyrillic-koi8-r-encode-table)))
|
||||
((translate-character cyrillic-koi8-r-encode-table r0 r1)))
|
||||
"CCL program to encode Cyrillic chars to KOI font.")
|
||||
|
||||
(setq font-ccl-encoder-alist
|
||||
(cons (cons "koi8" ccl-encode-koi8-font) font-ccl-encoder-alist))
|
||||
|
||||
(defvar cyrillic-koi8-r-nonascii-translation-table
|
||||
(make-translation-table-from-vector cyrillic-koi8-r-decode-table)
|
||||
"Value of `nonascii-translation-table' in Cyrillic-KOI8 language environment..")
|
||||
(cons '("koi8" . ccl-encode-koi8-font) font-ccl-encoder-alist))
|
||||
|
||||
(set-language-info-alist
|
||||
"Cyrillic-KOI8" `((charset cyrillic-iso8859-5)
|
||||
(nonascii-translation
|
||||
. ,cyrillic-koi8-r-nonascii-translation-table)
|
||||
. ,(get 'cyrillic-koi8-r-nonascii-translation-table
|
||||
'translation-table))
|
||||
(coding-system cyrillic-koi8)
|
||||
(coding-priority cyrillic-koi8)
|
||||
(input-method . "cyrillic-jcuken")
|
||||
|
|
@ -157,8 +145,6 @@
|
|||
|
||||
;;; ALTERNATIVNYJ staff
|
||||
|
||||
(eval-and-compile
|
||||
|
||||
(defvar cyrillic-alternativnyj-decode-table
|
||||
[
|
||||
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
|
|
@ -179,38 +165,34 @@
|
|||
?,L!(B ?,Lq(B 242 243 244 245 246 247 248 249 250 251 252 253 254 ?,Lp(B]
|
||||
"Cyrillic ALTERNATIVNYJ decoding table.")
|
||||
|
||||
(defvar cyrillic-alternativnyj-encode-table
|
||||
(let ((table (make-vector 256 32))
|
||||
(i 0))
|
||||
(while (< i 256)
|
||||
(let* ((ch (aref cyrillic-alternativnyj-decode-table i))
|
||||
(split (split-char ch)))
|
||||
(if (eq (car split) 'cyrillic-iso8859-5)
|
||||
(aset table (logior (nth 1 split) 128) i)
|
||||
(if (/= ch 32)
|
||||
(aset table ch i))))
|
||||
(setq i (1+ i)))
|
||||
(let ((table (make-translation-table-from-vector
|
||||
cyrillic-alternativnyj-decode-table)))
|
||||
(define-translation-table 'cyrillic-alternativnyj-nonascii-translation-table
|
||||
table)
|
||||
"Cyrillic ALTERNATIVNYJ encoding table.")
|
||||
|
||||
)
|
||||
(define-translation-table 'cyrillic-alternativnyj-encode-table
|
||||
(char-table-extra-slot table 0)))
|
||||
|
||||
|
||||
(define-ccl-program ccl-decode-alternativnyj
|
||||
`(3
|
||||
((read r0)
|
||||
(loop
|
||||
(write-read-repeat r0 ,cyrillic-alternativnyj-decode-table))))
|
||||
((loop
|
||||
(r0 = 0)
|
||||
(read r1)
|
||||
(if (r1 < 128)
|
||||
(write-repeat r1)
|
||||
((translate-character cyrillic-alternativnyj-nonascii-translation-table
|
||||
r0 r1)
|
||||
(write-multibyte-character r0 r1)
|
||||
(repeat))))))
|
||||
"CCL program to decode Alternativnyj.")
|
||||
|
||||
(define-ccl-program ccl-encode-alternativnyj
|
||||
`(1
|
||||
((read r0)
|
||||
(loop
|
||||
(if (r0 != ,(charset-id 'cyrillic-iso8859-5))
|
||||
(write-read-repeat r0)
|
||||
((read r0)
|
||||
(write-read-repeat r0 ,cyrillic-alternativnyj-encode-table))))))
|
||||
((loop
|
||||
(read-multibyte-character r0 r1)
|
||||
(if (r0 == ,(charset-id 'cyrillic-iso8859-5))
|
||||
(translate-character cyrillic-alternativnyj-encode-table r0 r1))
|
||||
(write-repeat r1))))
|
||||
"CCL program to encode Alternativnyj.")
|
||||
|
||||
(make-coding-system
|
||||
|
|
@ -227,22 +209,18 @@
|
|||
|
||||
(define-ccl-program ccl-encode-alternativnyj-font
|
||||
'(0
|
||||
((r1 |= 128)
|
||||
(r1 = r1 ,cyrillic-alternativnyj-encode-table)))
|
||||
((translate-character cyrillic-alternativnyj-encode-table r0 r1)))
|
||||
"CCL program to encode Cyrillic chars to Alternativnyj font.")
|
||||
|
||||
(setq font-ccl-encoder-alist
|
||||
(cons (cons "alternativnyj" ccl-encode-alternativnyj-font)
|
||||
(cons '("alternativnyj" . ccl-encode-alternativnyj-font)
|
||||
font-ccl-encoder-alist))
|
||||
|
||||
(defvar cyrillic-alternativnyj-nonascii-translation-table
|
||||
(make-translation-table-from-vector cyrillic-alternativnyj-decode-table)
|
||||
"Value of `nonascii-translation-table' in Cyrillic-ALT language environment.")
|
||||
|
||||
(set-language-info-alist
|
||||
"Cyrillic-ALT" `((charset cyrillic-iso8859-5)
|
||||
(nonascii-translation
|
||||
. ,cyrillic-alternativnyj-nonascii-translation-table)
|
||||
. ,(get 'cyrillic-alternativnyj-nonascii-translation-table
|
||||
'translation-table))
|
||||
(coding-system cyrillic-alternativnyj)
|
||||
(coding-priority cyrillic-alternativnyj)
|
||||
(input-method . "cyrillic-jcuken")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue