Is there a cross-implementation (at minimum SBCL, CCL, Lispworks and CLISP), cross-platform (Linux/Windows/OS X) way of capturing keyboard interrupts in Common Lisp? Or more specifically, to let a keyboard interrupt through?
I've got this code snippet in a file
...
(handler-case
...
((not simple-error) () (error! +400+ ready)))
...
whose purpose is to handle errors, but let the user interrupt the program with a keyboard interrupt (which in SBCL on Linux manifests as a simple-error). However, this doesn't seem to work in CCL (where that error clause seems to trigger even when the main code doesn't throw an error).
What's the right approach in this situation?