~ chicken-core (chicken-5) 938b33f44d0bc06131e215fd6a70712501b1af53
commit 938b33f44d0bc06131e215fd6a70712501b1af53
Author: Peter Bex <peter@more-magic.net>
AuthorDate: Thu Nov 19 16:51:25 2015 +0100
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Thu Nov 19 16:51:25 2015 +0100
Make ##sys#with-print-limit a bit more consistent
This fixes #951, for the most part.
Signed-off-by: Evan Hanson <evhan@foldling.org>
diff --git a/library.scm b/library.scm
index 4ef566c0..2148c1d2 100644
--- a/library.scm
+++ b/library.scm
@@ -3142,8 +3142,7 @@ EOF
(define ##sys#print-exit (make-parameter #f))
(define ##sys#print
- (let ((string-append string-append)
- (case-sensitive case-sensitive)
+ (let ((case-sensitive case-sensitive)
(keyword-style keyword-style))
(lambda (x readable port)
(##sys#check-output-port port #t #f)
@@ -3157,12 +3156,11 @@ EOF
(let* ((len (##sys#size str))
(cpp0 (current-print-length))
(cpl (fx+ cpp0 len)) )
- (if (fx>= cpl length-limit)
- (cond ((fx> len 3)
- (let ((n (fx- length-limit cpp0)))
- (when (fx> n 0) (outstr0 port (##sys#substring str 0 n)))
- (outstr0 port "...") ) )
- (else (outstr0 port str)) )
+ (if (fx> cpl length-limit)
+ (let ((n (fx- length-limit cpp0)))
+ (when (fx> n 0) (outstr0 port (##sys#substring str 0 n)))
+ (outstr0 port "...")
+ ((##sys#print-exit) (##sys#void)))
(outstr0 port str) )
(current-print-length cpl) )
(outstr0 port str) ) )
@@ -3176,7 +3174,7 @@ EOF
(current-print-length (fx+ cpp0 1))
(when (fx>= cpp0 length-limit)
(outstr0 port "...")
- ((##sys#print-exit) #t) )))
+ ((##sys#print-exit) (##sys#void)))))
((##sys#slot (##sys#slot port 2) 2) port chr))
(define (specialchar? chr)
Trap