1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

Fix bug #31081 (`lookahead-u8' returns an s8.)

Reported by Göran Weinholt <goran@weinholt.se>.

* libguile/r6rs-ports.c (scm_lookahead_u8): Return an unsigned byte.

* test-suite/tests/r6rs-ports.test ("7.2.8 Binary Input")["lookahead-u8:
  result is unsigned"]: New test.
This commit is contained in:
Ludovic Courtès 2010-09-23 22:34:31 +02:00
parent e7bee74771
commit 3fa882203a
3 changed files with 8 additions and 2 deletions

1
THANKS
View file

@ -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

View file

@ -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;

View file

@ -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)))