X-Git-Url: http://dolda2000.com/gitweb/?p=lisp-utils.git;a=blobdiff_plain;f=charcode.lisp;h=68ef0def97dbf270f04753879c00d35ec23098bd;hp=2a051aedf1910378bdb020bddad84ebdf446cecf;hb=ebf1ccf75c98bbaf66b39e126d92aa43aaf255f3;hpb=fd26d811d11e158fbba41b2a3c71a3a0a61b5df6 diff --git a/charcode.lisp b/charcode.lisp index 2a051ae..68ef0de 100644 --- a/charcode.lisp +++ b/charcode.lisp @@ -5,6 +5,7 @@ (:use :cl #+sbcl :sb-gray #-sbcl :gray) (:export "MAKE-ENCODER" "MAKE-DECODER" "ENCODE-STRING" "DECODE-STRING" "CODING-ERROR" + "MAKE-CODEC-CHARACTER-STREAM" "LATIN-1" "LATIN1" "UTF-8" "UTF8")) (in-package :charcode) @@ -75,6 +76,10 @@ (read-pos :initform 0) (buffer :initform (make-array '(64) :element-type 'character :adjustable t :fill-pointer 0)))) +(defun make-codec-character-stream (real-stream charset) + (declare (type stream real-stream)) + (make-instance 'codec-character-stream :decoder (make-decoder charset) :encoder (make-encoder charset) :back real-stream)) + (defmethod close ((stream codec-character-stream) &key abort) (with-slots (back) stream (close back :abort abort))