~ chicken-core (chicken-5) aa2d6b8247b13476fe609d1fd263238cc10a6a8e
commit aa2d6b8247b13476fe609d1fd263238cc10a6a8e
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Sep 23 08:34:20 2011 +0200
Commit: Christian Kellermann <ckeen@pestilenz.org>
CommitDate: Fri Sep 23 11:24:28 2011 +0200
pseudo parameters current-input-port, current-output-port, current-error-port and current-exception-handler now return the correct value in the assignment case; fixed some types.db entries; all noted by sjamaan
Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
diff --git a/library.scm b/library.scm
index 8ceb7de1..d84c8053 100644
--- a/library.scm
+++ b/library.scm
@@ -1813,25 +1813,25 @@ EOF
p )
(define (current-input-port . arg)
- (if (pair? arg)
- (let ([p (car arg)])
- (##sys#check-port p 'current-input-port)
- (set! ##sys#standard-input p) )
- ##sys#standard-input) )
+ (when (pair? arg)
+ (let ([p (car arg)])
+ (##sys#check-port p 'current-input-port)
+ (set! ##sys#standard-input p) ))
+ ##sys#standard-input)
(define (current-output-port . arg)
- (if (pair? arg)
- (let ([p (car arg)])
- (##sys#check-port p 'current-output-port)
- (set! ##sys#standard-output p) )
- ##sys#standard-output) )
+ (when (pair? arg)
+ (let ([p (car arg)])
+ (##sys#check-port p 'current-output-port)
+ (set! ##sys#standard-output p) ) )
+ ##sys#standard-output)
(define (current-error-port . arg)
- (if (pair? arg)
- (let ([p (car arg)])
- (##sys#check-port p 'current-error-port)
- (set! ##sys#standard-error p) )
- ##sys#standard-error) )
+ (when (pair? arg)
+ (let ([p (car arg)])
+ (##sys#check-port p 'current-error-port)
+ (set! ##sys#standard-error p) ) )
+ ##sys#standard-error)
(define (##sys#tty-port? port)
(and (not (zero? (##sys#peek-unsigned-integer port 0)))
@@ -3954,9 +3954,9 @@ EOF
(lambda () (set! ##sys#current-exception-handler oldh)) ) ) )
(define (current-exception-handler #!optional proc)
- (if proc
- (set! ##sys#current-exception-handler proc)
- ##sys#current-exception-handler))
+ (when proc
+ (set! ##sys#current-exception-handler proc))
+ ##sys#current-exception-handler)
(define (make-property-condition kind . props)
(##sys#make-structure
diff --git a/types.db b/types.db
index de03b3c4..17f1f01c 100644
--- a/types.db
+++ b/types.db
@@ -684,6 +684,7 @@
;; chicken
(abort (procedure abort (*) noreturn))
+(##sys#abort (procedure abort (*) noreturn))
(add1 (#(procedure #:clean #:enforce) add1 (number) number)
((float) (float)
@@ -1069,7 +1070,7 @@
((string) #(1)))
(##sys#foreign-symbol-argument (#(procedure #:clean #:enforce) ##sys#foreign-symbol-argument (symbol) symbol)
((symbol) #(1)))
-(##sys#foreign-pointer-argument (#(procedure #:clean #:enforce) ##sys#foreign-pointer-argument ((or boolean pointer)) pointer)
+(##sys#foreign-pointer-argument (#(procedure #:clean #:enforce) ##sys#foreign-pointer-argument (pointer) pointer)
((pointer) #(1)))
(##sys#check-blob (#(procedure #:clean #:enforce) ##sys#check-blob (blob #!optional *) *)
Trap