diff options
author | Mark H Weaver <mhw@netris.org> | 2013-03-31 19:06:51 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2013-04-04 17:48:37 -0400 |
commit | 45c0878b8665182f06a917e391169031c1dc7db6 (patch) | |
tree | 8c7dfcacacdc33272d7e5e7c30625397fd607669 /libguile/print.c | |
parent | 0426b3f8f8036364aca13c24ef769283937faa3d (diff) | |
download | guile-45c0878b8665182f06a917e391169031c1dc7db6.tar.gz |
Peeks do not consume EOFs.
Fixes <http://bugs.gnu.org/12216>.
* libguile/ports-internal.h (struct scm_port_internal): Add
'pending_eof' flag.
* libguile/ports.c (scm_i_set_pending_eof, scm_i_clear_pending_eof): New
static functions.
(scm_new_port_table_entry): Initialize 'pending_eof'.
(scm_i_fill_input): Check for 'pending_eof'.
(scm_i_peek_byte_or_eof): Set 'pending_eof' flag before returning EOF.
(scm_end_input, scm_unget_byte, scm_seek, scm_truncate): Clear
'pending_eof'.
(scm_peek_char): Set 'pending_eof' flag before returning EOF.
* test-suite/tests/ports.test ("pending EOF behavior"): Add tests.
Diffstat (limited to 'libguile/print.c')
0 files changed, 0 insertions, 0 deletions