diff --git a/scsh/sighandlers.scm b/scsh/sighandlers.scm index c46bb61..94bf213 100644 --- a/scsh/sighandlers.scm +++ b/scsh/sighandlers.scm @@ -104,13 +104,15 @@ (define (scsh-os-signal-handler-ref signal) (if (or (< signal 0) (> signal 32)) - (begin - (display "ill signum" in ref) - (display signal)) + (error "ill signum in scsh-os-signal-handler-ref" signal) (vector-ref scsh-os-signal-handlers-vector signal))) + +;; why is this called "int" ??? (define (set-scsh-os-signal-handler! int handler) - (vector-set! scsh-os-signal-handlers-vector int handler)) + (if (or (< int 0) (> int 32)) + (error "ill signum in set-scsh-os-signal-handler!" int) + (vector-set! scsh-os-signal-handlers-vector int handler))) @@ -238,17 +240,18 @@ ((#t) (vector-ref default-int-handler-vec int)) ((#f) noop-sig-handler) (else handler))) + ohandler)) - (cond ((and (not handler) ohandler ; Toggling from something - (int->signal int)) => ; to ignored. - (lambda (sig) - (%set-unix-signal-handler sig 0))) - ((and handler (not ohandler) ; Toggling from ignored - (int->signal int)) => ; to something. - (lambda (sig) - (%set-unix-signal-handler sig 2)))) + ; (cond ((and (not handler) ohandler ; Toggling from something +; (int->signal int)) => ; to ignored. +; (lambda (sig) +; (%set-unix-signal-handler sig 0))) +; ((and handler (not ohandler) ; Toggling from ignored +; (int->signal int)) => ; to something. +; (lambda (sig) +; (%set-unix-signal-handler sig 2)))) - ohandler)) +; ohandler)) (define (interrupt-handler int) (let ((handler (vector-ref (interrupt-handlers-vector) int)))