-(declaim (inline get-cp437-bytes))
-(defun get-cp437-bytes(string pos end)
- (declare (optimize speed (safety 0))
- (type simple-string string)
- (type array-range pos end))
- (get-latin-bytes #'code->cp437-mapper :cp437 string pos end))
-
-(defun string->cp437 (string sstart send null-padding)
- (declare (optimize speed (safety 0))
- (type simple-string string)
- (type array-range sstart send))
- (values (string->latin% string sstart send #'get-cp437-bytes null-padding)))
-
-(defmacro define-cp437->string* (accessor type)
- (declare (ignore type))
- (let ((name (make-od-name 'cp437->string* accessor)))
- `(progn
- (defun ,name (string sstart send array astart aend)
- (,(make-od-name 'latin->string* accessor) string sstart send array astart aend #'cp437->code-mapper)))))
-
-(instantiate-octets-definition define-cp437->string*)
-
-(defmacro define-cp437->string (accessor type)
- (declare (ignore type))
- `(defun ,(make-od-name 'cp437->string accessor) (array astart aend)
- (,(make-od-name 'latin->string accessor) array astart aend #'cp437->code-mapper)))
-
-(instantiate-octets-definition define-cp437->string)
-
-(push '((:cp437 :|cp437|)
- cp437->string-aref string->cp437)
- *external-format-functions*)
-
-(define-external-format (:cp437 :|cp437|)
- 1 t
- (let ((cp437-byte (code->cp437-mapper bits)))
- (if cp437-byte
- (setf (sap-ref-8 sap tail) cp437-byte)
- (stream-encoding-error-and-handle stream bits)))
- (let ((code (cp437->code-mapper byte)))
- (if code
- (code-char code)
- (stream-decoding-error stream byte)))) ;; TODO -- error check
-
-(define-unibyte-mapper cp850->code-mapper code->cp850-mapper