[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: catch-cancel



In article <korcuska-2805950935540001@korcuska.ils.nwu.edu>,
korcuska@ils.nwu.edu (Michael Korcuska) wrote:

|We ran into a strange problem the other day with catch-cancel and
|throw-cancel.  Inside a catch-cancel we create a window with a button
|which, when clicked, calls throw-cancel.  Unfortunately the throw wasn't
|being caught by the catch we set up.
|
|After puzzling over this for a bit, we ditched (catch-cancel...) and used
|(catch :my-cancel ...).  Now it works fine.
|
|Ok.  So catch-cancel must be doing something strange, right? 
|Macroexpanding catch-cancel gives us (catch :cancel ...).  And, sure
|enough, if we use :cancel as the tag for the catch then the problem
|reappears.  So it seems that MCL's implementation of catch is doing
|something special when the tag is :cancel.
|
|Anyone care to explain what's happening?  Is it documented somewhere?

Don't claim to understand what's going on, but I fought with this [or at
least related] once before.

I tried to set up my own yes/no/cancel dialog, and return one of [:yes,
:no, :cancel].  It behaved oddly/specially :cancel.  Any other value would
be ok.

It would probably be a bad idea to try and fix it, but documentation
explaining what's going on, or at least saying what not to do would be a
Good Thing<tm>.

-- 
-- 
--
-- "TANSTAAFL"  Rich lynch@ils.nwu.edu