Imported from ../bash-3.2.tar.gz.

This commit is contained in:
Jari Aalto 2006-10-10 14:15:34 +00:00
commit 0628567a28
182 changed files with 17647 additions and 9477 deletions

24
quit.h
View file

@ -22,11 +22,19 @@
#define _QUIT_H_
/* Non-zero means SIGINT has already ocurred. */
extern int interrupt_state;
extern volatile int interrupt_state;
extern volatile int terminating_signal;
/* Macro to call a great deal. SIGINT just sets above variable. When
it is safe, put QUIT in the code, and the "interrupt" will take place. */
#define QUIT if (interrupt_state) throw_to_top_level ()
/* Macro to call a great deal. SIGINT just sets the interrupt_state variable.
When it is safe, put QUIT in the code, and the "interrupt" will take
place. The same scheme is used for terminating signals (e.g., SIGHUP)
and the terminating_signal variable. That calls a function which will
end up exiting the shell. */
#define QUIT \
do { \
if (terminating_signal) termsig_handler (terminating_signal); \
if (interrupt_state) throw_to_top_level (); \
} while (0)
#define SETINTERRUPT interrupt_state = 1
#define CLRINTERRUPT interrupt_state = 0
@ -34,4 +42,12 @@ extern int interrupt_state;
#define ADDINTERRUPT interrupt_state++
#define DELINTERRUPT interrupt_state--
/* The same sort of thing, this time just for signals that would ordinarily
cause the shell to terminate. */
#define CHECK_TERMSIG \
do { \
if (terminating_signal) termsig_handler (terminating_signal); \
} while (0)
#endif /* _QUIT_H_ */