From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.bugs Subject: bug#20302: peek-char messes up file position on binary string ports Date: Wed, 04 Nov 2015 16:12:38 -0500 Message-ID: <87k2pxzcxl.fsf@netris.org> References: <87y4lylwch.fsf@fencepost.gnu.org> <87383z5nmj.fsf@netris.org> <87oahfoj8p.fsf@netris.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1446671662 22097 80.91.229.3 (4 Nov 2015 21:14:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 4 Nov 2015 21:14:22 +0000 (UTC) Cc: 20302-done@debbugs.gnu.org To: David Kastrup Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Wed Nov 04 22:14:13 2015 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Zu5Nk-00005b-NX for guile-bugs@m.gmane.org; Wed, 04 Nov 2015 22:14:12 +0100 Original-Received: from localhost ([::1]:57154 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zu5Nj-0003Jc-B2 for guile-bugs@m.gmane.org; Wed, 04 Nov 2015 16:14:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47814) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zu5Nf-0003IJ-J0 for bug-guile@gnu.org; Wed, 04 Nov 2015 16:14:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zu5Nb-0004Uj-44 for bug-guile@gnu.org; Wed, 04 Nov 2015 16:14:07 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:34805) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zu5Nb-0004UR-18 for bug-guile@gnu.org; Wed, 04 Nov 2015 16:14:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Zu5Na-00076e-HW for bug-guile@gnu.org; Wed, 04 Nov 2015 16:14:02 -0500 Resent-From: Mark H Weaver Original-Sender: "Debbugs-submit" Resent-To: bug-guile@gnu.org Resent-Date: Wed, 04 Nov 2015 21:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: cc-closed 20302 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Mail-Followup-To: 20302@debbugs.gnu.org, mhw@netris.org, dak@gnu.org Original-Received: via spool by 20302-done@debbugs.gnu.org id=D20302.144667158827227 (code D ref 20302); Wed, 04 Nov 2015 21:14:02 +0000 Original-Received: (at 20302-done) by debbugs.gnu.org; 4 Nov 2015 21:13:08 +0000 Original-Received: from localhost ([127.0.0.1]:53744 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Zu5Mh-000755-Ld for submit@debbugs.gnu.org; Wed, 04 Nov 2015 16:13:07 -0500 Original-Received: from world.peace.net ([50.252.239.5]:57722) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Zu5MO-00074P-2J for 20302-done@debbugs.gnu.org; Wed, 04 Nov 2015 16:13:06 -0500 Original-Received: from [10.1.10.104] (helo=jojen) by world.peace.net with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1Zu5MG-0002F8-5u; Wed, 04 Nov 2015 16:12:40 -0500 In-Reply-To: <87oahfoj8p.fsf@netris.org> (Mark H. Weaver's message of "Sun, 06 Sep 2015 07:55:02 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.43 X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.bugs:7877 Archived-At: Mark H Weaver writes: > Mark H Weaver writes: > >> David Kastrup 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