[cxml-cvs] CVS update: cxml/runes/encodings.lisp

David Lichteblau dlichteblau at common-lisp.net
Mon Nov 28 22:22:54 UTC 2005


Update of /project/cxml/cvsroot/cxml/runes
In directory common-lisp.net:/tmp/cvs-serv3876/runes

Modified Files:
	encodings.lisp 
Log Message:
kommentaraenderungen

Date: Mon Nov 28 23:22:51 2005
Author: dlichteblau

Index: cxml/runes/encodings.lisp
diff -u cxml/runes/encodings.lisp:1.5 cxml/runes/encodings.lisp:1.6
--- cxml/runes/encodings.lisp:1.5	Sun Nov 27 21:59:00 2005
+++ cxml/runes/encodings.lisp	Mon Nov 28 23:22:51 2005
@@ -107,6 +107,39 @@
 (defmacro %<  (&rest xs)  `(fx-pred < , at xs))
 (defmacro %>  (&rest xs)  `(fx-pred > , at xs))
 
+;;; Decoders
+
+;; The decoders share a common signature:
+;;
+;; DECODE input input-start input-end
+;;        output output-start output-end
+;;        eof-p
+;; -> first-not-written ; first-not-read
+;;
+;; These decode functions should decode as much characters off `input'
+;; into the `output' as possible and return the indexes to the first
+;; not read and first not written element of `input' and `output'
+;; respectively.  If there are not enough bytes in `input' to decode a
+;; full character, decoding shold be abandomed; the caller has to
+;; ensure that the remaining bytes of `input' are passed to the
+;; decoder again with more bytes appended.
+;;
+;; `eof-p' now in turn indicates, if the given input sequence, is all
+;; the producer does have and might be used to produce error messages
+;; in case of incomplete codes or decided what to do.
+;;
+;; Decoders are expected to handle the various CR/NL conventions and
+;; canonicalize each end of line into a single NL rune (#xA) in good
+;; old Lisp tradition.
+;;
+
+;; TODO: change this to an encoding class, which then might carry
+;; additional state. Stateless encodings could been represented by
+;; keywords. e.g.
+;;
+;;  defmethod DECODE-SEQUENCE ((encoding (eql :utf-8)) ...)
+;;
+
 (defmethod decode-sequence ((encoding (eql :utf-16-big-endian))
                             in in-start in-end out out-start out-end eof?)
   ;; -> new wptr, new rptr




More information about the Cxml-cvs mailing list