ports: Added `open-bytevector-output-port'.
commita72057457e5a086c803483cbcc9af37890bbd670
authorLudovic Court`es <ludovic.courtes@laas.fr>
Thu, 22 Feb 2007 17:59:01 +0000 (22 17:59 +0000)
committerLudovic Court`es <ludovic.courtes@laas.fr>
Thu, 22 Feb 2007 17:59:01 +0000 (22 17:59 +0000)
treeddddad66fb788aade774b8f6f12bad09d87962fe
parentba75f065d20dc1908d87376a266fe5c821474fa2
ports: Added `open-bytevector-output-port'.

* modules/r6rs/i/o/ports.scm: Export `open-bytevector-output-port'.

* src/ports.c: Include <string.h>.
  (transcoders_not_implemented): New.
  (scm_r6rs_open_bytevector_input_port): Use it.
  (bytevector_output_port_type): New.
  (SCM_GC_BOP, SCM_BOP_BUFFER_INITIAL_SIZE, SCM_R6RS_BOP_BUFFER,
  SCM_R6RS_SET_BOP_BUFFER): New macros.
  (scm_t_bop_buffer): New type.
  (bop_buffer_init, bop_buffer_grow): New functions.
  (make_bop, bop_free, bop_write, bop_seek): New.
  (bop_proc_apply, bop_proc_mark): New.
  (scm_r6rs_open_bytevector_output_port): New.
  (initialize_bytevector_output_ports): New.
  (scm_init_r6rs_ports): Call it.

* src/ports.h: Updated.

* tests/io-ports.test: Use `srfi-11'.
  (7.2.11 Binary Output)[open-bytevector-output-port]: New test.
  [bytevector output port supports `port-position']: New test.

git-archimport-id: lcourtes@laas.fr--2006-libre/guile-r6rs-libs--devo--0--patch-27
ChangeLog
modules/r6rs/i/o/ports.scm
src/ports.c
src/ports.h
tests/io-ports.test