"Andy Wingo" <wi...@pobox.com> skribis: > commit f05bb8494c9636cd7a44aaf7d4e08f4b66004b6e > Author: Andy Wingo <wi...@pobox.com> > Date: Thu Jan 10 22:50:27 2013 +0100 > > add bytevector->string and string->bytevector in new (ice-9 iconv) module > > * module/Makefile.am: > * module/ice-9/iconv.scm: New module implementing procedures to encode > and decode representations of strings as bytes. > > * test-suite/Makefile.am: > * test-suite/tests/iconv.test: Add tests. > > * doc/ref/api-data.texi: Add docs.
Nice, this was long overdue, I guess. :-) > +@node Representing Strings as Bytes > +@subsubsection Representing Strings as Bytes [...] > +@deffn string->bytevector string encoding [#:conversion-strategy='error] An optional instead of keyword argument would look nicer, IMO. > +Encode @var{string} as a sequence of bytes. > + > +The string will be encoded in the character set specified by the > +@var{encoding} string. If the string has characters that cannot be > +represented in the encoding, by default this procedure raises an > +@code{encoding-error}, I think this doesn’t leave a way to know which character in STRING could not be converted. It would be ideal if that information could be provided as part of the exception, as is the case with ports (tested with ‘test-decoding-error’ in ports.test.) > +@deffn bytevector->string bytevector encoding #:conversion-strategy is missing here. > +The Scheme interface to this function is @code{encode-string}, from the string->bytevector > +The Scheme interface to this function is @code{decode-string}. bytevector->string > +(define-module (ice-9 iconv) > + #:use-module (rnrs bytevectors) > + #:use-module (ice-9 binary-ports) > + #:use-module ((ice-9 rdelim) #:select (read-delimited)) > + #:export (string->bytevector > + bytevector->string > + call-with-encoded-output-string)) Not a single docstring. Now I feel ashamed when asking Nala to add docstrings. ;-) Thanks! Ludo’.