(void)tcsetattr(input, TCSANOW|TCSASOFT, &oterm);
(void)tcsetattr(input, TCSAFLUSH|TCSASOFT, &oterm);
static void handler(int signo){	struct sigaction osa;	sigset_t nset;	int save_errno;	save_errno = errno;	/* Restore tty modes */	if (memcmp(&term, &oterm, sizeof(term)) != 0)		(void)tcsetattr(input, TCSANOW|TCSASOFT, &oterm);	/*	 * Save old handler and set to original value.	 * Unblock receipt of 'signo' and resend the signal so that	 * it is caught by the pre-readpassphrase handler.	 */	switch (signo) {	case SIGINT:		(void)sigaction(signo, &saveint, &osa);		break;	case SIGHUP:		(void)sigaction(signo, &savehup, &osa);		break;	case SIGQUIT:		(void)sigaction(signo, &savequit, &osa);		break;	case SIGTERM:		(void)sigaction(signo, &saveterm, &osa);		break;	case SIGTSTP:		(void)sigaction(signo, &savetstp, &osa);		susp = 1;		break;	}	(void)sigemptyset(&nset);	(void)sigaddset(&nset, signo);	(void)sigprocmask(SIG_UNBLOCK, &nset, NULL);	(void)kill(getpid(), signo);	(void)sigprocmask(SIG_BLOCK, &nset, NULL);	(void)sigaction(signo, &osa, NULL);	/* Put tty modes back */	if (memcmp(&term, &oterm, sizeof(term)) != 0)		(void)tcsetattr(input, TCSANOW|TCSASOFT, &term);	errno = save_errno;}