Defer compililng external-formats until warm load
[sbcl.git] / src / code / external-formats / enc-jpn.lisp
blobd4630c3d1b34730aea43600d6b9129f65bb0a04a
1 (in-package "SB-IMPL")
3 ;;; EUC-JP
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))
9 (type fixnum code))
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))
15 (type fixnum code))
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)
24 ((= code #x8F) 3)))
26 (defun eucjp-continuation-byte-p (code)
27 (declare (optimize speed (safety 0))
28 (type (unsigned-byte 8) code))
29 (<= #xA1 code #xFE))
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)
35 ;;; Shift_JIS
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))
41 (type fixnum code))
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))
47 (type fixnum code))
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)