version 1.13, 1996/01/07 17:22:11
|
version 1.14, 1996/01/25 16:45:52
|
Line 729 signal_throw(int sig)
|
Line 729 signal_throw(int sig)
|
longjmp(throw_jmp_buf,code); /* or use siglongjmp ? */ |
longjmp(throw_jmp_buf,code); /* or use siglongjmp ? */ |
} |
} |
|
|
static void |
static void termprep (int sig) |
termprep (int sig) |
|
{ |
{ |
terminal_prepped=0; |
|
signal(sig,termprep); |
signal(sig,termprep); |
|
terminal_prepped=0; |
} |
} |
|
|
void |
UCell rows=24; |
install_signal_handlers (void) |
UCell cols=80; |
|
|
|
void get_winsize() |
|
{ |
|
#ifdef TIOCGWINSZ |
|
struct winsize size; |
|
|
|
if (ioctl (1, TIOCGWINSZ, (char *) &size) >= 0) { |
|
rows = size.ws_row; |
|
cols = size.ws_col; |
|
} |
|
#else |
|
char *s, *ends; |
|
unsigned long ul; |
|
if (s=getenv("LINES")) { |
|
rows=atoi(s); |
|
if (rows==0) |
|
rows=24; |
|
} |
|
if (s=getenv("COLUMNS")) { |
|
rows=atoi(s); |
|
if (rows==0) |
|
cols=80; |
|
} |
|
#endif |
|
} |
|
|
|
static void change_winsize(int sig) |
|
{ |
|
signal(sig,change_winsize); |
|
#ifdef TIOCGWINSZ |
|
get_winsize(); |
|
#endif |
|
} |
|
|
|
void install_signal_handlers (void) |
{ |
{ |
|
|
#if 0 |
#if 0 |
Line 801 install_signal_handlers (void)
|
Line 835 install_signal_handlers (void)
|
#ifdef SIGTTOU |
#ifdef SIGTTOU |
SIGTTOU, |
SIGTTOU, |
#endif |
#endif |
#ifdef SIGWINCH |
|
SIGWINCH, |
|
#endif |
|
#ifdef SIGSTKFLT |
#ifdef SIGSTKFLT |
SIGSTKFLT, |
SIGSTKFLT, |
#endif |
#endif |
Line 838 install_signal_handlers (void)
|
Line 869 install_signal_handlers (void)
|
#ifdef SIGALRM |
#ifdef SIGALRM |
SIGALRM, |
SIGALRM, |
#endif |
#endif |
|
#ifdef SIGPIPE |
|
SIGPIPE, |
|
#endif |
#ifdef SIGPOLL |
#ifdef SIGPOLL |
SIGPOLL, |
SIGPOLL, |
#endif |
#endif |
Line 879 install_signal_handlers (void)
|
Line 913 install_signal_handlers (void)
|
#ifdef SIGABRT |
#ifdef SIGABRT |
SIGABRT, |
SIGABRT, |
#endif |
#endif |
#ifdef SIGPIPE |
|
SIGPIPE, |
|
#endif |
|
#ifdef SIGTERM |
#ifdef SIGTERM |
SIGTERM, |
SIGTERM, |
#endif |
#endif |
Line 889 install_signal_handlers (void)
|
Line 920 install_signal_handlers (void)
|
SIGXCPU, |
SIGXCPU, |
#endif |
#endif |
}; |
}; |
static short sigs_to_termprep [] = { |
|
#ifdef SIGCONT |
|
SIGCONT, |
|
#endif |
|
}; |
|
int i; |
int i; |
|
|
#define DIM(X) (sizeof (X) / sizeof *(X)) |
#define DIM(X) (sizeof (X) / sizeof *(X)) |
Line 905 install_signal_handlers (void)
|
Line 931 install_signal_handlers (void)
|
signal (sigs_to_throw [i], signal_throw); |
signal (sigs_to_throw [i], signal_throw); |
for (i = 0; i < DIM (sigs_to_quit); i++) |
for (i = 0; i < DIM (sigs_to_quit); i++) |
signal (sigs_to_quit [i], graceful_exit); |
signal (sigs_to_quit [i], graceful_exit); |
for (i = 0; i < DIM (sigs_to_termprep); i++) |
#ifdef SIGCONT |
signal (sigs_to_termprep [i], termprep); |
signal (SIGCONT, termprep); |
|
#endif |
|
#ifdef SIGWINCH |
|
signal (SIGWINCH, change_winsize); |
|
#endif |
} |
} |
/* end signal handling */ |
/* end signal handling */ |