X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fexternal-formats%2Fenc-cyr.lisp;h=9d0061d8f7edf6fc8192d4600c47131b4f3aa900;hb=54b330585ed41edeb93a289f0e59aec67fa9ded9;hp=0cfa0e34b7323eb0269044379136de45b8669736;hpb=b3e3fbe7d381147fccc8a3027cb6fae923e57d13;p=sbcl.git diff --git a/src/code/external-formats/enc-cyr.lisp b/src/code/external-formats/enc-cyr.lisp index 0cfa0e3..9d0061d 100644 --- a/src/code/external-formats/enc-cyr.lisp +++ b/src/code/external-formats/enc-cyr.lisp @@ -136,7 +136,7 @@ (declare (optimize speed (safety 0)) (type simple-string string) (type array-range pos end)) - (get-latin-bytes #'identity :koi8-r string pos end)) + (get-latin-bytes #'code->koi8-r-mapper :koi8-r string pos end)) (defun string->koi8-r (string sstart send null-padding) (declare (optimize speed (safety 0)) @@ -149,14 +149,14 @@ (let ((name (make-od-name 'koi8-r->string* accessor))) `(progn (defun ,name (string sstart send array astart aend) - (,(make-od-name 'latin->string* accessor) string sstart send array astart aend #'identity))))) + (,(make-od-name 'latin->string* accessor) string sstart send array astart aend #'koi8-r->code-mapper))))) (instantiate-octets-definition define-koi8-r->string*) (defmacro define-koi8-r->string (accessor type) (declare (ignore type)) `(defun ,(make-od-name 'koi8-r->string accessor) (array astart aend) - (,(make-od-name 'latin->string accessor) array astart aend #'identity))) + (,(make-od-name 'latin->string accessor) array astart aend #'koi8-r->code-mapper))) (instantiate-octets-definition define-koi8-r->string) @@ -169,11 +169,11 @@ (let ((koi8-r-byte (code->koi8-r-mapper bits))) (if koi8-r-byte (setf (sap-ref-8 sap tail) koi8-r-byte) - (stream-encoding-error-and-handle stream bits))) + (external-format-encoding-error stream bits))) (let ((code (koi8-r->code-mapper byte))) (if code (code-char code) - (stream-decoding-error stream byte)))) ;; TODO -- error check + (external-format-decoding-error stream byte)))) ;; TODO -- error check (define-unibyte-mapper koi8-u->code-mapper code->koi8-u-mapper (#x80 #x2500) ; BOX DRAWINGS LIGHT HORIZONTAL @@ -311,7 +311,7 @@ (declare (optimize speed (safety 0)) (type simple-string string) (type array-range pos end)) - (get-latin-bytes #'identity :koi8-u string pos end)) + (get-latin-bytes #'code->koi8-u-mapper :koi8-u string pos end)) (defun string->koi8-u (string sstart send null-padding) (declare (optimize speed (safety 0)) @@ -324,14 +324,14 @@ (let ((name (make-od-name 'koi8-u->string* accessor))) `(progn (defun ,name (string sstart send array astart aend) - (,(make-od-name 'latin->string* accessor) string sstart send array astart aend #'identity))))) + (,(make-od-name 'latin->string* accessor) string sstart send array astart aend #'koi8-u->code-mapper))))) (instantiate-octets-definition define-koi8-u->string*) (defmacro define-koi8-u->string (accessor type) (declare (ignore type)) `(defun ,(make-od-name 'koi8-u->string accessor) (array astart aend) - (,(make-od-name 'latin->string accessor) array astart aend #'identity))) + (,(make-od-name 'latin->string accessor) array astart aend #'koi8-u->code-mapper))) (instantiate-octets-definition define-koi8-u->string) @@ -344,11 +344,11 @@ (let ((koi8-u-byte (code->koi8-u-mapper bits))) (if koi8-u-byte (setf (sap-ref-8 sap tail) koi8-u-byte) - (stream-encoding-error-and-handle stream bits))) + (external-format-encoding-error stream bits))) (let ((code (koi8-u->code-mapper byte))) (if code (code-char code) - (stream-decoding-error stream byte)))) ;; TODO -- error check + (external-format-decoding-error stream byte)))) ;; TODO -- error check (define-unibyte-mapper x-mac-cyrillic->code-mapper code->x-mac-cyrillic-mapper (#x80 #x0410) ; CYRILLIC CAPITAL LETTER A @@ -481,7 +481,7 @@ (declare (optimize speed (safety 0)) (type simple-string string) (type array-range pos end)) - (get-latin-bytes #'identity :x-mac-cyrillic string pos end)) + (get-latin-bytes #'code->x-mac-cyrillic-mapper :x-mac-cyrillic string pos end)) (defun string->x-mac-cyrillic (string sstart send null-padding) (declare (optimize speed (safety 0)) @@ -494,14 +494,14 @@ (let ((name (make-od-name 'x-mac-cyrillic->string* accessor))) `(progn (defun ,name (string sstart send array astart aend) - (,(make-od-name 'latin->string* accessor) string sstart send array astart aend #'identity))))) + (,(make-od-name 'latin->string* accessor) string sstart send array astart aend #'x-mac-cyrillic->code-mapper))))) (instantiate-octets-definition define-x-mac-cyrillic->string*) (defmacro define-x-mac-cyrillic->string (accessor type) (declare (ignore type)) `(defun ,(make-od-name 'x-mac-cyrillic->string accessor) (array astart aend) - (,(make-od-name 'latin->string accessor) array astart aend #'identity))) + (,(make-od-name 'latin->string accessor) array astart aend #'x-mac-cyrillic->code-mapper))) (instantiate-octets-definition define-x-mac-cyrillic->string) @@ -514,8 +514,8 @@ (let ((x-mac-cyrillic-byte (code->x-mac-cyrillic-mapper bits))) (if x-mac-cyrillic-byte (setf (sap-ref-8 sap tail) x-mac-cyrillic-byte) - (stream-encoding-error-and-handle stream bits))) + (external-format-encoding-error stream bits))) (let ((code (x-mac-cyrillic->code-mapper byte))) (if code (code-char code) - (stream-decoding-error stream byte)))) ;; TODO -- error check + (external-format-decoding-error stream byte)))) ;; TODO -- error check