DEFER INTERRUPT and the int_flag
If the user selects Cancel during the CONSTRUCT,
the built-in global integer variable int_flag is automatically set to
TRUE.
Once
int_flag is set to TRUE, your program must reset it to
FALSE to detect a new cancellation. You typically set int_flag to
FALSE before you start a dialog instruction, and you test it just after (or in the
AFTER CONSTRUCT / AFTER INPUT block) to detect if the dialog was
canceled:LET int_flag = FALSE
CONSTRUCT BY NAME where_part
...
END CONSTRUCT
IF int_flag = TRUE THEN
...
END IFThe statement DEFER INTERRUPT in your MAIN program block will
prevent your program from terminating abruptly if a SIGINT signal is received.
When using a GUI interface, the user can generate an interrupt signal if you have an action view
named 'interrupt' (the predefined interrupt action). If an interrupt event is received,
TRUE is assigned to int_flag.
It is up to the programmer to manage the interruption event (stop or continue with the program),
by testing the value of int_flag variable.