ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/main.C
(Generate patch)

Comparing rxvt-unicode/src/main.C (file contents):
Revision 1.270 by root, Tue Dec 4 16:24:00 2007 UTC vs.
Revision 1.276 by root, Tue Dec 11 18:00:07 2007 UTC

38#include <limits> 38#include <limits>
39 39
40#include <csignal> 40#include <csignal>
41#include <cstring> 41#include <cstring>
42 42
43#ifdef HAVE_TERMIOS_H
44# include <termios.h> 43# include <termios.h>
45#endif
46 44
47#ifdef HAVE_XSETLOCALE 45#ifdef HAVE_XSETLOCALE
48# define X_LOCALE 46# define X_LOCALE
49# include <X11/Xlocale.h> 47# include <X11/Xlocale.h>
50#else 48#else
160#endif 158#endif
161#ifdef CURSOR_BLINK 159#ifdef CURSOR_BLINK
162 cursor_blink_ev.set <rxvt_term, &rxvt_term::cursor_blink_cb> (this); 160 cursor_blink_ev.set <rxvt_term, &rxvt_term::cursor_blink_cb> (this);
163#endif 161#endif
164#ifdef TEXT_BLINK 162#ifdef TEXT_BLINK
165 text_blink_ev.set <rxvt_term, &rxvt_term::text_blink_cb> (this); 163 text_blink_ev.set <rxvt_term, &rxvt_term::text_blink_cb> (this); text_blink_ev.set (0., TEXT_BLINK_INTERVAL);
166#endif 164#endif
167#ifndef NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING 165#ifndef NO_SCROLLBAR_BUTTON_CONTINUAL_SCROLLING
168 cont_scroll_ev.set <rxvt_term, &rxvt_term::cont_scroll_cb> (this); 166 cont_scroll_ev.set <rxvt_term, &rxvt_term::cont_scroll_cb> (this);
169#endif 167#endif
170#ifdef SELECTION_SCROLLING 168#ifdef SELECTION_SCROLLING
329} 327}
330 328
331void 329void
332rxvt_term::destroy () 330rxvt_term::destroy ()
333{ 331{
334 if (destroy_ev.active) 332 if (ev_is_active (&destroy_ev))
335 return; 333 return;
336 334
337 HOOK_INVOKE ((this, HOOK_DESTROY, DT_END)); 335 HOOK_INVOKE ((this, HOOK_DESTROY, DT_END));
338 336
339#if ENABLE_OVERLAY 337#if ENABLE_OVERLAY
600 ev::sig sw_term, sw_int; 598 ev::sig sw_term, sw_int;
601 599
602 /* 600 /*
603 * Catch a fatal signal and tidy up before quitting 601 * Catch a fatal signal and tidy up before quitting
604 */ 602 */
605 void
606 sig_term (ev::sig &w, int revents) 603 void sig_term (ev::sig &w, int revents);
607 {
608 rxvt_emergency_cleanup ();
609 w.stop ();
610 kill (getpid (), w.signum);
611 }
612 604
613 sig_handlers () 605 sig_handlers ()
614 { 606 {
615 sw_term.set<sig_handlers, &sig_handlers::sig_term> (this); 607 sw_term.set<sig_handlers, &sig_handlers::sig_term> (this);
616 sw_int .set<sig_handlers, &sig_handlers::sig_term> (this); 608 sw_int .set<sig_handlers, &sig_handlers::sig_term> (this);
617 } 609 }
618} sig_handlers; 610} sig_handlers;
619 611
612void
613sig_handlers::sig_term (ev::sig &w, int revents)
614{
615 rxvt_emergency_cleanup ();
616 w.stop ();
617 kill (getpid (), w.signum);
618}
619
620char **rxvt_environ; // startup environment 620char **rxvt_environ; // startup environment
621 621
622void 622void
623rxvt_init () 623rxvt_init ()
624{ 624{
827 ws.ws_xpixel = width; 827 ws.ws_xpixel = width;
828 ws.ws_ypixel = height; 828 ws.ws_ypixel = height;
829 (void)ioctl (pty->pty, TIOCSWINSZ, &ws); 829 (void)ioctl (pty->pty, TIOCSWINSZ, &ws);
830 830
831#if 0 831#if 0
832 // TIOCSWINSZ is supposed to do this automatically and correctly 832 // TIOCSWINSZ is supposed to do this automatically and correctly
833 if (cmd_pid) /* force through to the command */ 833 if (cmd_pid) /* force through to the command */
834 kill (-cmd_pid, SIGWINCH); 834 kill (-cmd_pid, SIGWINCH);
835#endif 835#endif
836} 836}
837 837

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines