~ 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