Hi,
I consider myself stomped on !
Your use of SET ESCAPE is at odds with the description from the on-line help (pasted below).
Why is there no reference to loops being exited? If your loops are nested how far out does the escape take control?
I'm tempted to assume that you must be testing either LASTKEY() or the value returned from INKEY() and then programmatically determining program flow. Do your Users see the alert referred to below?
Houston.
(From on-line help)
If the user presses ESC during command or program execution, processing completes at the current program line, and an
alert appears with the following three options:
(Default) Choose Cancel to immediately stop program execution and return to the
Command window.
Choose Suspend to pause program execution and return to the
Command window. This option is useful for debugging a program. Choosing Resume from the Program menu or issuing RESUME in the Command window restarts the program at the line at which it was paused.
Choose Ignore to continue program execution at the line at which it was paused.
censored.