Mark H Weaver <m...@netris.org> writes: > Mark H Weaver <m...@netris.org> writes: > >> David Kastrup <d...@gnu.org> writes: >> >>> (use-modules (rnrs bytevectors) (rnrs io ports)) >>> (let ((port (open-bytevector-input-port >>> (string->utf8 "Blablabla\nBlablabla\n")))) >>> (seek port 13 SEEK_SET) >>> (format #t "~c ~d\n" (peek-char port) >>> (ftell port))) >>> ;; Outputs b 3 but should output b 13 >>> >>> This is using >>> guile (GNU Guile) 2.0.11 >>> Packaged by Debian (2.0.11-deb+1-1) >> >> Ouch :-( >> >> The problem is that r6rs-ports.c:bip_seek assumes that >> c_port->read_{buf,pos,end} point to the original bytevector, and fail to >> handle the case where it points to a "putback" buffer. >> >> Note that (ftell port) is equivalent to (seek port 0 SEEK_CUR). > > I've attached a preliminary patch set to fix this bug and some others.
I believe this is now fixed on the stable-2.0 branch, commit 448eb30e3d9e998e97a5d51875f861c9f6c1101c. I'm closing this bug now. Thanks, Mark