Fix `setvbuf' to leave the line/column number unchanged.
authorLudovic Courtès <ludo@gnu.org>
Tue, 8 May 2012 10:43:06 +0000 (12:43 +0200)
committerLudovic Courtès <ludo@gnu.org>
Tue, 8 May 2012 14:11:13 +0000 (16:11 +0200)
commite8b21eecb11d261eeecbc7a14fa7f7c16e819a3d
treef266f2d12dee54004df1d8f6f0c58aa79788d5a3
parent0eba699d12f638c624efcdc2b617b0aa9099ee1f
Fix `setvbuf' to leave the line/column number unchanged.

* libguile/fports.c (scm_setvbuf): Use `scm_take_from_input_buffers'
  directly instead of `scm_drain_input'; use `scm_unget_byte' instead of
  `scm_unread_string' to put the drained input back to PORT.  This
  leaves PORT's line/column numbers unchanged, whereas they'd previously
  be decreased by the `scm_unread_string' call.

* libguile/ports.c (scm_take_from_input_buffers): Update description and
  variable names to refer to "bytes", not "chars".

* test-suite/tests/ports.test ("setvbuf"): New test prefix.
libguile/fports.c
libguile/ports.c
test-suite/tests/ports.test