diff --git a/THANKS b/THANKS index 9e18e5986..3ee51e703 100644 --- a/THANKS +++ b/THANKS @@ -130,6 +130,7 @@ For fixes or providing information which led to a fix: Michael Tuexen Thomas Wawrzinek Mark H. Weaver + Göran Weinholt Jon Wilson Andy Wingo Keith Wright diff --git a/libguile/r6rs-ports.c b/libguile/r6rs-ports.c index 6ad320af4..9576db8be 100644 --- a/libguile/r6rs-ports.c +++ b/libguile/r6rs-ports.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009 Free Software Foundation, Inc. +/* Copyright (C) 2009, 2010 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -447,7 +447,7 @@ SCM_DEFINE (scm_lookahead_u8, "lookahead-u8", 1, 0, 0, result = scm_peek_char (port); if (SCM_CHARP (result)) - result = SCM_I_MAKINUM ((signed char) SCM_CHAR (result)); + result = SCM_I_MAKINUM ((unsigned char) SCM_CHAR (result)); else result = SCM_EOF_VAL; diff --git a/test-suite/tests/r6rs-ports.test b/test-suite/tests/r6rs-ports.test index 0b627da1a..7d80ed73d 100644 --- a/test-suite/tests/r6rs-ports.test +++ b/test-suite/tests/r6rs-ports.test @@ -52,6 +52,11 @@ (= (char->integer #\A) (get-u8 port)) (eof-object? (get-u8 port))))) + (pass-if "lookahead-u8: result is unsigned" + ;; Bug #31081. + (let ((port (open-bytevector-input-port #vu8(255)))) + (= (lookahead-u8 port) 255))) + (pass-if "get-bytevector-n [short]" (let* ((port (open-input-string "GNU Guile")) (bv (get-bytevector-n port 4)))