~ chicken-core (chicken-5) c344ffbc405cfb120b6e687839a1f070de51afb3


commit c344ffbc405cfb120b6e687839a1f070de51afb3
Author:     Christian Kellermann <ckeen@pestilenz.org>
AuthorDate: Sun Sep 25 11:58:02 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Mon Sep 26 15:40:14 2011 +0200

    replace write-line calls to display with internal procedures.
    
    Signed-off-by: felix <felix@call-with-current-continuation.org>

diff --git a/extras.scm b/extras.scm
index bb9e4343..3be95cc3 100644
--- a/extras.scm
+++ b/extras.scm
@@ -134,13 +134,14 @@
 
 (define write-line
   (lambda (str . port)
-    (let ((p (if (##core#inline "C_eqp" port '())
-		 ##sys#standard-output
-		 (##sys#slot port 0) ) ) )
-      (##sys#check-port p 'write-line)
+    (let* ((p (if (##core#inline "C_eqp" port '())
+                  ##sys#standard-output
+                  (##sys#slot port 0) ) ))
+      (##sys#check-port* p 'write-line)
+      (##sys#check-port-mode p #f 'write-line)
       (##sys#check-string str 'write-line)
-      (display str p)
-      (newline p) ) ) )
+      ((##sys#slot (##sys#slot p 2) 3) p str) ; write-string method
+      (##sys#write-char-0 #\newline p))))
 
 
 ;;; Extended I/O 
Trap