Update of /cvsroot/scsh/scsh-0.6/scsh
In directory slayer.i.sourceforge.net:/tmp/cvs-serv13382/scsh
Modified Files:
top.scm startup.scm sighandlers.scm
Log Message:
Default sighandler for SIG/INT depends on whether we run interactive or not.
Index: top.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/top.scm,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** top.scm 2000/08/28 12:51:22 1.7
--- top.scm 2000/09/17 15:10:41 1.8
***************
*** 241,245 ****
(init-low-interrupt)
(install-event-handlers!)
! (%install-scsh-handlers)
(install-autoreaping)
(install-env)
--- 241,245 ----
(init-low-interrupt)
(install-event-handlers!)
! (%install-scsh-handlers (not term-switch))
(install-autoreaping)
(install-env)
Index: startup.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/startup.scm,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** startup.scm 2000/08/28 13:28:49 1.7
--- startup.scm 2000/09/17 15:10:42 1.8
***************
*** 47,51 ****
(init-low-interrupt)
(install-event-handlers!)
! (install-env)
(init-scsh-vars #f) ; Do it quietly.
(start args))
--- 47,53 ----
(init-low-interrupt)
(install-event-handlers!)
! (install-env)
! (%install-scsh-handlers #f)
! (install-autoreaping)
(init-scsh-vars #f) ; Do it quietly.
(start args))
Index: sighandlers.scm
===================================================================
RCS file: /cvsroot/scsh/scsh-0.6/scsh/sighandlers.scm,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** sighandlers.scm 2000/06/28 10:30:59 1.10
--- sighandlers.scm 2000/09/17 15:10:42 1.11
***************
*** 333,337 ****
(define-foreign %%get-int-handlers (get_int_handlers) desc)
! (define (%install-scsh-handlers)
(do ((int 0 (+ int 1)))
((= int number-of-interrupts))
--- 333,337 ----
(define-foreign %%get-int-handlers (get_int_handlers) desc)
! (define (%install-scsh-handlers interactive?)
(do ((int 0 (+ int 1)))
((= int number-of-interrupts))
***************
*** 343,347 ****
(let ((i (%signal->interrupt sig)))
(if (not (or (= i -1)
! (= sig signal/int) ; Leave ^c and
(= sig signal/alrm))) ; alarm handlers alone.
(set-interrupt-handler
--- 343,347 ----
(let ((i (%signal->interrupt sig)))
(if (not (or (= i -1)
! ; (= sig signal/int) ; Leave ^c and
(= sig signal/alrm))) ; alarm handlers alone.
(set-interrupt-handler
***************
*** 353,365 ****
(error "sighandler did not find scheduler-initial-thread, but"
scheduler-initial-thread))
!
! (set-interrupt-handler interrupt/keyboard
! (lambda stuff
! ((structure-ref threads-internal schedule-event)
! scheduler-initial-thread
! (enum
! (structure-ref threads-internal event-type)
! interrupt)
! (enum interrupt keyboard))))))
;;; I am ashamed to say the 33 below is completely bogus.
--- 353,368 ----
(error "sighandler did not find scheduler-initial-thread, but"
scheduler-initial-thread))
!
! ;; Note: this will prevent any other system to work, since it pushes
! ;; a new command level !
! (if interactive?
! (set-interrupt-handler interrupt/keyboard
! (lambda stuff
! ((structure-ref threads-internal
schedule-event)
! scheduler-initial-thread
! (enum
! (structure-ref threads-internal event-type)
! interrupt)
! (enum interrupt keyboard)))))))
;;; I am ashamed to say the 33 below is completely bogus.
|