CVS code -
+- nano.c:
+ do_cont()
+ - Run signal_init() after doupdate() so ^Y wont suddenly
+ start suspending after returning from ^Z suspend in Hurd.
+ signal_init()
+ - Unconditionally disable VDSUSP if it exists, stops ^Y
+ suspending nano on the Hurd.
nano-1.1.4 - 12/11/2001
- General
SIGTSTP handler */
doupdate();
+ /* The Hurd seems to need this, otherwise a ^Y after a ^Z will
+ start suspending again */
+ signal_init();
}
void handle_sigwinch(int s)
act.sa_handler = handle_sigwinch;
sigaction(SIGWINCH, &act, NULL);
+
+#ifdef _POSIX_VDISABLE
+ tcgetattr(0, &term);
+
+#ifdef VDSUSP
+ term.c_cc[VDSUSP] = _POSIX_VDISABLE;
+#endif /* VDSUSP */
+
+#endif /* _POSIX_VDISABLE */
+
if (!ISSET(SUSPEND)) {
/* Insane! */
#ifdef _POSIX_VDISABLE
- tcgetattr(0, &term);
term.c_cc[VSUSP] = _POSIX_VDISABLE;
- tcsetattr(0, TCSANOW, &term);
-#endif
-
- /* The HURD seems to need this anyway! */
+#else
act.sa_handler = SIG_IGN;
sigaction(SIGTSTP, &act, NULL);
+#endif
} else {
/* if we don't do this, it seems other stuff interrupts the
sigaction(SIGCONT, &act, NULL);
}
+
+#ifdef _POSIX_VDISABLE
+ tcsetattr(0, TCSANOW, &term);
+#endif
+
+
}
void window_init(void)
char *real_dir_from_tilde(char *buf);
void shortcut_init(int unjustify);
+void signal_init(void);
void lowercase(char *src);
void blank_bottombars(void);
void check_wrap(filestruct * inptr, char ch);