From a222503a89a0ed81cdea49c13fb4f582b8924447 Mon Sep 17 00:00:00 2001 From: Juliana Sims Date: Fri, 10 Nov 2023 23:25:56 -0500 Subject: [PATCH] =?UTF-8?q?Second=20argument=20of=20=E2=80=98unread-string?= =?UTF-8?q?=E2=80=99=20is=20optional.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . * 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. * NEWS: Update. Signed-off-by: Ludovic Courtès --- NEWS | 2 ++ doc/ref/api-io.texi | 2 +- libguile/ports.c | 2 +- test-suite/tests/ports.test | 6 +++--- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 8a61bf65d..3c4854ca9 100644 --- a/NEWS +++ b/NEWS @@ -59,6 +59,8 @@ files. See "Random Access" in the manual for details. () ** 'read-u8' in (scheme base) now defaults to (current-input-port) () +** Second argument of 'unread-string' is now optional, as previously documented + () ** 'ftw' now correctly deals with directory permissions () ** 'make-custom-port' now honors its #:conversion-strategy argument diff --git a/doc/ref/api-io.texi b/doc/ref/api-io.texi index d0076bf68..79bc9e9d6 100644 --- a/doc/ref/api-io.texi +++ b/doc/ref/api-io.texi @@ -2000,7 +2000,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 +@deffn {Scheme Procedure} unread-string str [port] @deffnx {C Function} scm_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}. diff --git a/libguile/ports.c b/libguile/ports.c index d3f763400..d0e4e0c7f 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 27acf13b4..7b5b535e7 100644 --- a/test-suite/tests/ports.test +++ b/test-suite/tests/ports.test @@ -636,13 +636,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"