~ chicken-core (chicken-5) 23031a3d8ef6ae9e7aa86d881eaabf7292625ea0


commit 23031a3d8ef6ae9e7aa86d881eaabf7292625ea0
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Sep 17 13:05:26 2010 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri Sep 17 13:05:26 2010 +0200

    exposed print-length-limit for scheduler

diff --git a/library.scm b/library.scm
index a6961e6f..a770959e 100644
--- a/library.scm
+++ b/library.scm
@@ -30,7 +30,7 @@
   (disable-interrupts)
   (hide ##sys#dynamic-unwind ##sys#find-symbol
 	##sys#grow-vector ##sys#default-parameter-vector 
-	print-length-limit current-print-length setter-tag read-marks
+	current-print-length setter-tag read-marks
 	##sys#print-exit
 	##sys#format-here-doc-warning)
   (not inline ##sys#user-read-hook ##sys#error-hook ##sys#signal-hook ##sys#schedule
@@ -2783,7 +2783,7 @@ EOF
   (void) )
 
 (define current-print-length (make-parameter 0))
-(define print-length-limit (make-parameter #f))
+(define ##sys#print-length-limit (make-parameter #f))
 (define ##sys#print-exit (make-parameter #f))
 
 (define ##sys#print
@@ -2792,7 +2792,7 @@ EOF
       (##sys#check-port-mode port #f)
       (let ([csp (case-sensitive)]
 	    [ksp (keyword-style)]
-	    [length-limit (print-length-limit)]
+	    [length-limit (##sys#print-length-limit)]
 	    [special-characters '(#\( #\) #\, #\[ #\] #\{ #\} #\' #\" #\; #\ #\` #\|)] )
 
 	(define (outstr port str)
@@ -2814,12 +2814,13 @@ EOF
 	  ((##sys#slot (##sys#slot port 2) 3) port str) )
 
 	(define (outchr port chr)
-	  (let ((cpp0 (current-print-length)))
-	    (current-print-length (fx+ cpp0 1))
-	    (when (and length-limit (fx>= cpp0 length-limit))
-	      (outstr0 port "...")
-	      ((##sys#print-exit) #t) )
-	    ((##sys#slot (##sys#slot port 2) 2) port chr) ) )
+	  (when length-limit
+	    (let ((cpp0 (current-print-length)))
+	      (current-print-length (fx+ cpp0 1))
+	      (when (fx>= cpp0 length-limit)
+		(outstr0 port "...")
+		((##sys#print-exit) #t) )))
+	  ((##sys#slot (##sys#slot port 2) 2) port chr))
 
 	(define (specialchar? chr)
 	  (let ([c (char->integer chr)])
@@ -3036,7 +3037,7 @@ EOF
     (lambda (limit thunk)
       (call-with-current-continuation
        (lambda (return)
-	 (parameterize ((print-length-limit limit)
+	 (parameterize ((##sys#print-length-limit limit)
 			(##sys#print-exit return)
 			(current-print-length 0))
 	   (thunk)))))))
diff --git a/scheduler.scm b/scheduler.scm
index b475c4d8..adbd2dd6 100644
--- a/scheduler.scm
+++ b/scheduler.scm
@@ -85,7 +85,7 @@ EOF
 (begin
   (define stderr ##sys#standard-error) ; use default stderr port
   (define (dbg . args)
-    (parameterize ((print-length-limit #f))
+    (parameterize ((##sys#print-length-limit #f))
       (for-each
        (lambda (x)
 	 (display x stderr))
Trap