GNU bug report logs -
#67063
unread-string does not match documented functionality
Previous Next
To reply to this bug, email your comments to 67063 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guile <at> gnu.org
:
bug#67063
; Package
guile
.
(Sat, 11 Nov 2023 04:23:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Juliana Sims <juli <at> incana.org>
:
New bug report received and forwarded. Copy sent to
bug-guile <at> gnu.org
.
(Sat, 11 Nov 2023 04:23:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hello,
The procedure unread-string is documented to only optionally accept a
port argument, but the implementation in fact requries it.
I've written a patch to resolve this and will be sending it along
shortly.
Thanks,
Juli
Information forwarded
to
bug-guile <at> gnu.org
:
bug#67063
; Package
guile
.
(Sat, 11 Nov 2023 04:29:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 67063 <at> debbugs.gnu.org (full text, mbox):
Hello,
This patch simply fixes bug 67063.
Thanks,
Juli
* doc/ref/api-io.texi (Venerable Port Interfaces): Bring unread-string
procedure documentation in line with other procedures in the section.
* libguile/ports.c (scm_unread_string): Make port argument optional.
* test-suite/tests/ports.test: Test unread-char and unread-string
without ports.
---
doc/ref/api-io.texi | 3 +--
libguile/ports.c | 2 +-
test-suite/tests/ports.test | 6 +++---
3 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/doc/ref/api-io.texi b/doc/ref/api-io.texi
index e263e2985..90411fbdf 100644
--- a/doc/ref/api-io.texi
+++ b/doc/ref/api-io.texi
@@ -1981,8 +1981,7 @@ The same as @code{unget-char}, except that @var{port} defaults to the
current input port, and the arguments are swapped. @xref{Textual I/O}.
@end deffn
-@deffn {Scheme Procedure} unread-string str port
-@deffnx {C Function} scm_unread_string (str, port)
+@deffn {Scheme Procedure} unread-string str [port]
The same as @code{unget-string}, except that @var{port} defaults to the
current input port, and the arguments are swapped. @xref{Textual I/O}.
@end deffn
diff --git a/libguile/ports.c b/libguile/ports.c
index c25c20709..eb4a59bd5 100644
--- a/libguile/ports.c
+++ b/libguile/ports.c
@@ -2228,7 +2228,7 @@ SCM_DEFINE (scm_unread_char, "unread-char", 1, 1, 0,
}
#undef FUNC_NAME
-SCM_DEFINE (scm_unread_string, "unread-string", 2, 0, 0,
+SCM_DEFINE (scm_unread_string, "unread-string", 1, 1, 0,
(SCM str, SCM port),
"Place the string @var{str} in @var{port} so that its characters will be\n"
"read in subsequent read operations. If called multiple times, the\n"
diff --git a/test-suite/tests/ports.test b/test-suite/tests/ports.test
index 1b30e1a68..040bb02f0 100644
--- a/test-suite/tests/ports.test
+++ b/test-suite/tests/ports.test
@@ -590,13 +590,13 @@
(with-input-from-string "walk on the moon\nmoon"
(lambda ()
(read-char)
- (unread-char #\a (current-input-port))
+ (unread-char #\a)
(pass-if "unread-char"
(char=? (read-char) #\a))
(read-line)
(let ((replacenoid "chicken enchilada"))
- (unread-char #\newline (current-input-port))
- (unread-string replacenoid (current-input-port))
+ (unread-char #\newline)
+ (unread-string replacenoid)
(pass-if "unread-string"
(string=? (read-line) replacenoid)))
(pass-if "unread residue"
--
2.41.0
This bug report was last modified 175 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.