version 1.11, 2015/11/20 21:59:54 |
version 1.12, 2016/07/08 20:42:15 |
|
|
tag_files.tfd = -1; |
tag_files.tfd = -1; |
tag_files.tcpgid = -1; |
tag_files.tcpgid = -1; |
|
|
|
/* Clean up when dying from a signal. */ |
|
|
|
memset(&sa, 0, sizeof(sa)); |
|
sigfillset(&sa.sa_mask); |
|
sa.sa_handler = tag_signal; |
|
sigaction(SIGHUP, &sa, NULL); |
|
sigaction(SIGINT, &sa, NULL); |
|
sigaction(SIGTERM, &sa, NULL); |
|
|
|
/* |
|
* POSIX requires that a process calling tcsetpgrp(3) |
|
* from the background gets a SIGTTOU signal. |
|
* In that case, do not stop. |
|
*/ |
|
|
|
sa.sa_handler = SIG_IGN; |
|
sigaction(SIGTTOU, &sa, NULL); |
|
|
/* Save the original standard output for use by the pager. */ |
/* Save the original standard output for use by the pager. */ |
|
|
if ((tag_files.ofd = dup(STDOUT_FILENO)) == -1) |
if ((tag_files.ofd = dup(STDOUT_FILENO)) == -1) |
|
|
sizeof(tag_files.ofn)); |
sizeof(tag_files.ofn)); |
(void)strlcpy(tag_files.tfn, "/tmp/man.XXXXXXXXXX", |
(void)strlcpy(tag_files.tfn, "/tmp/man.XXXXXXXXXX", |
sizeof(tag_files.tfn)); |
sizeof(tag_files.tfn)); |
memset(&sa, 0, sizeof(sa)); |
|
sigfillset(&sa.sa_mask); |
|
sa.sa_handler = tag_signal; |
|
sigaction(SIGHUP, &sa, NULL); |
|
sigaction(SIGINT, &sa, NULL); |
|
sigaction(SIGTERM, &sa, NULL); |
|
if ((ofd = mkstemp(tag_files.ofn)) == -1) |
if ((ofd = mkstemp(tag_files.ofn)) == -1) |
goto fail; |
goto fail; |
if ((tag_files.tfd = mkstemp(tag_files.tfn)) == -1) |
if ((tag_files.tfd = mkstemp(tag_files.tfn)) == -1) |