4 (declaim (inline ucs-to-eucjp eucjp-to-ucs
5 mb-len-as-eucjp eucjp-continuation-byte-p
))
7 (defun ucs-to-eucjp (code)
8 (declare (optimize speed
(safety 0))
10 (if (<= code
#x7F
) code
11 (get-multibyte-mapper +ucs-to-eucjp-table
+ code
)))
13 (defun eucjp-to-ucs (code)
14 (declare (optimize speed
(safety 0))
16 (if (<= code
#x7F
) code
17 (get-multibyte-mapper +eucjp-to-ucs-table
+ code
)))
19 (defun mb-len-as-eucjp (code)
20 (declare (optimize speed
(safety 0))
21 (type (unsigned-byte 8) code
))
22 (cond ((< code
#x80
) 1)
23 ((or (= code
#x8E
) (<= #xA1 code
#xFE
)) 2)
26 (defun eucjp-continuation-byte-p (code)
27 (declare (optimize speed
(safety 0))
28 (type (unsigned-byte 8) code
))
31 (declaim (muffle-conditions compiler-note
))
32 (define-multibyte-encoding :euc-jp
(:euc-jp
:eucjp
:|eucJP|
)
33 ucs-to-eucjp eucjp-to-ucs mb-len-as-eucjp eucjp-continuation-byte-p
)
36 (declaim (inline ucs-to-sjis sjis-to-ucs
37 mb-len-as-sjis sjis-continuation-byte-p
))
39 (defun ucs-to-sjis (code)
40 (declare (optimize speed
(safety 0))
42 (if (<= code
#x7F
) code
43 (get-multibyte-mapper +ucs-to-sjis-table
+ code
)))
45 (defun sjis-to-ucs (code)
46 (declare (optimize speed
(safety 0))
48 (if (<= code
#x7F
) code
49 (get-multibyte-mapper +sjis-to-ucs-table
+ code
)))
51 (defun mb-len-as-sjis (code)
52 (declare (optimize speed
(safety 0))
53 (type (unsigned-byte 8) code
))
54 (cond ((or (< code
#x80
) (<= #xA1 code
#xDF
)) 1)
55 ((or (<= #x81 code
#x9F
) (<= #xE0 code
#xFC
)) 2)))
57 (defun sjis-continuation-byte-p (code)
58 (declare (optimize speed
(safety 0))
59 (type (unsigned-byte 8) code
))
60 (or (<= #x40 code
#x7E
) (<= #x80 code
#xFC
)))
62 (define-multibyte-encoding :shift_jis
(:shift_jis
:sjis
:|Shift_JIS|
:cp932
)
63 ucs-to-sjis sjis-to-ucs mb-len-as-sjis sjis-continuation-byte-p
)