Fix documentation of R6RS 'binary-port?' to reflect reality.
authorMark H Weaver <mhw@netris.org>
Sun, 28 Apr 2019 07:55:40 +0000 (03:55 -0400)
committerMark H Weaver <mhw@netris.org>
Tue, 18 Jun 2019 07:09:42 +0000 (03:09 -0400)
* doc/ref/r6rs.texi (rnrs io ports): Improve the descriptions of
'binary-port?' and 'textual-port?'.
* module/rnrs/io/ports.scm (binary-port?, textual-port?): Update the
docstrings.

doc/ref/r6rs.texi
module/rnrs/io/ports.scm

index fa8d7d21321d8b8cc3bcaf65a10b7e6458b18dfb..218dca32671302c2f3cdbc7f608d9b4af6ec8e9d 100644 (file)
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Guile Reference Manual.
 @c Copyright (C)  2010, 2011, 2012, 2013,
-@c   2014 Free Software Foundation, Inc.
+@c   2014, 2019 Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
 @node R6RS Support
@@ -1680,9 +1680,22 @@ Return a transcoder associated with the encoding of @var{port}.
 @end deffn
 
 @deffn {Scheme Procedure} binary-port? port
-@deffnx {Scheme Procedure} textual-port? port
-Return @code{#t}, as all ports in Guile are suitable for binary and
-textual I/O.  @xref{Encoding}, for more details.
+Return @code{#t} if @var{port} appears to be a binary port, else return
+@code{#f}.  Note that Guile does not currently distinguish between
+binary and textual ports, so this predicate is not a reliable indicator
+of whether the port was created as a binary port.  Currently, it returns
+@code{#t} if and only if the port encoding is ``ISO-8859-1'', because
+Guile uses this encoding when creating a binary port.  @xref{Encoding},
+for more details.
+@end deffn
+
+@deffn {Scheme Procedure} textual-port? port
+Return @code{#t} if @var{port} appears to be a textual port, else return
+@code{#f}.  Note that Guile does not currently distinguish between
+binary and textual ports, so this predicate is not a reliable indicator
+of whether the port was created as a textual port.  Currently, it always
+returns @code{#t}, because all ports can be used for textual I/O in
+Guile.  @xref{Encoding}, for more details.
 @end deffn
 
 @deffn {Scheme Procedure} transcoded-port binary-port transcoder
index 5946067853e9c0a68db2a3a3b36f0153fe2372b6..c19aee9af3dd561b97b588f6fa0bbb1b557193fd 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; ports.scm --- R6RS port API                    -*- coding: utf-8 -*-
 
-;;;;   Copyright (C) 2009, 2010, 2011, 2013 Free Software Foundation, Inc.
+;;;; Copyright (C) 2009-2011, 2013, 2019 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
@@ -269,13 +269,21 @@ if the port has no transcoder."
                                 "unsupported error handling mode"))))))
 
 (define (binary-port? port)
-  "Always returns @code{#t}, as all ports can be used for binary I/O in
-Guile."
+  "Return @code{#t} if @var{port} appears to be a binary port, else
+return @code{#f}.  Note that Guile does not currently distinguish
+between binary and textual ports, so this predicate is not a reliable
+indicator of whether the port was created as a binary port.  Currently,
+it returns @code{#t} if and only if the port encoding is ``ISO-8859-1'',
+because Guile uses this encoding when creating a binary port."
   (equal? (port-encoding port) "ISO-8859-1"))
 
 (define (textual-port? port)
-  "Always returns @code{#t}, as all ports can be used for textual I/O in
-Guile."
+  "Return @code{#t} if @var{port} appears to be a textual port, else
+return @code{#f}.  Note that Guile does not currently distinguish
+between binary and textual ports, so this predicate is not a reliable
+indicator of whether the port was created as a textual port.  Currently,
+it always returns @code{#t}, because all ports can be used for textual
+I/O in Guile."
   #t)
 
 (define (port-eof? port)