Dolda2000 GitWeb
/
lisp-utils.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
ebf1ccf
)
Introduced a default codec function.
author
Fredrik Tolf
<fredrik@dolda2000.com>
Wed, 10 Mar 2010 04:16:36 +0000
(
05:16
+0100)
committer
Fredrik Tolf
<fredrik@dolda2000.com>
Wed, 10 Mar 2010 04:16:36 +0000
(
05:16
+0100)
charcode.lisp
patch
|
blob
|
blame
|
history
diff --git
a/charcode.lisp
b/charcode.lisp
index
68ef0de
..
db516eb
100644
(file)
--- a/
charcode.lisp
+++ b/
charcode.lisp
@@
-3,7
+3,7
@@
(defpackage :charcode
(:use :cl #+sbcl :sb-gray #-sbcl :gray)
(defpackage :charcode
(:use :cl #+sbcl :sb-gray #-sbcl :gray)
- (:export "MAKE-ENCODER" "MAKE-DECODER" "ENCODE-STRING" "DECODE-STRING"
+ (:export "MAKE-ENCODER" "MAKE-DECODER" "ENCODE-STRING" "DECODE-STRING"
"SYSTEM-CHARSET"
"CODING-ERROR"
"MAKE-CODEC-CHARACTER-STREAM"
"LATIN-1" "LATIN1" "UTF-8" "UTF8"))
"CODING-ERROR"
"MAKE-CODEC-CHARACTER-STREAM"
"LATIN-1" "LATIN1" "UTF-8" "UTF8"))
@@
-51,7
+51,11
@@
(defun make-decoder (name)
(the decoder-fun (values (funcall (get name 'make-decoder)))))
(defun make-decoder (name)
(the decoder-fun (values (funcall (get name 'make-decoder)))))
-(defun encode-string (string coding)
+(defun system-charset ()
+ ;; XXX: Replace me with something perhaps more sensible.
+ 'utf-8)
+
+(defun encode-string (string &optional (coding (system-charset)))
(declare (type string string))
(let ((encoder (make-encoder coding))
(buf (make-array (list (length string)) :element-type '(unsigned-byte 8) :adjustable t :fill-pointer 0)))
(declare (type string string))
(let ((encoder (make-encoder coding))
(buf (make-array (list (length string)) :element-type '(unsigned-byte 8) :adjustable t :fill-pointer 0)))
@@
-59,7
+63,7
@@
(coding-error string (length string) buf "Encoding of string in ~A ended prematurely." coding))
buf))
(coding-error string (length string) buf "Encoding of string in ~A ended prematurely." coding))
buf))
-(defun decode-string (buffer
coding
)
+(defun decode-string (buffer
&optional (coding (system-charset))
)
(declare (type (array (unsigned-byte 8)) buffer))
(let ((decoder (make-decoder coding))
(buf (make-array (list (length buffer)) :element-type 'character :adjustable t :fill-pointer 0)))
(declare (type (array (unsigned-byte 8)) buffer))
(let ((decoder (make-decoder coding))
(buf (make-array (list (length buffer)) :element-type 'character :adjustable t :fill-pointer 0)))
@@
-76,7
+80,7
@@
(read-pos :initform 0)
(buffer :initform (make-array '(64) :element-type 'character :adjustable t :fill-pointer 0))))
(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
)
+(defun make-codec-character-stream (real-stream
&optional (charset (system-charset))
)
(declare (type stream real-stream))
(make-instance 'codec-character-stream :decoder (make-decoder charset) :encoder (make-encoder charset) :back real-stream))
(declare (type stream real-stream))
(make-instance 'codec-character-stream :decoder (make-decoder charset) :encoder (make-encoder charset) :back real-stream))