Export a condition for detected user interrupts (SIGINT)

This commit is contained in:
Juan Jose Garcia Ripoll 2008-06-04 23:07:55 +02:00
parent 212fbd1d22
commit c02df756cc
6 changed files with 16 additions and 2 deletions

View file

@ -163,6 +163,9 @@ ECL 0.9k:
- ECL now ships with version 1.118 of ASDF.
- ECL exports a condition EXT:INTERACTIVE-INTERRUPT, that is signaled when the
user interrupts ECL, typically using Ctrl-C, or sending the SIGINT signal.
* Bugs fixed:
- Intel/64bits running a 32 bits operating system caused a wrong choice of

View file

@ -1703,5 +1703,7 @@ cl_symbols[] = {
{SYS_ "HASH-EQUAL", SI_ORDINARY, si_hash_equal, -1, OBJNULL},
{SYS_ "HASH-EQUALP", SI_ORDINARY, si_hash_equalp, -1, OBJNULL},
{EXT_ "INTERACTIVE-INTERRUPT", SI_ORDINARY, NULL, -1, OBJNULL},
/* Tag for end of list */
{NULL, CL_ORDINARY, NULL, -1, OBJNULL}};

View file

@ -1703,5 +1703,7 @@ cl_symbols[] = {
{SYS_ "HASH-EQUAL","si_hash_equal"},
{SYS_ "HASH-EQUALP","si_hash_equalp"},
{EXT_ "INTERACTIVE-INTERRUPT",NULL},
/* Tag for end of list */
{NULL,NULL}};

View file

@ -653,6 +653,13 @@ returns with NIL."
(simple-condition-format-arguments condition)
(format-error-control-string condition)
(format-error-offset condition)))))
(define-condition ext:interactive-interrupt (serious-condition)
()
(:report (lambda (condition stream)
(declare (ignore condition))
(format stream "~&~@<Console interrupt~:@>"))))
)))
); nehw-lave

View file

@ -46,7 +46,7 @@ Returns, as a string, the location of the machine on which ECL runs."
(defun lisp-implementation-version ()
"Args:()
Returns the version of your ECL as a string."
"@PACKAGE_VERSION@ (CVS 2008-06-04 22:12)")
"@PACKAGE_VERSION@ (CVS 2008-06-04 23:07)")
(defun machine-type ()
"Args: ()

View file

@ -375,7 +375,7 @@ under certain conditions; see file 'Copyright' for details.")
(defun terminal-interrupt (correctablep)
(let ((*break-enable* t))
(if correctablep
(cerror "Continues execution." "Console interrupt.")
(cerror "Continues execution." 'ext:interactive-interrupt)
(error "Console interrupt -- cannot continue."))))
(defun tpl (&key ((:commands *tpl-commands*) tpl-commands)