version 1.1, 2015/07/17 22:38:29 |
version 1.2, 2015/07/18 03:41:37 |
|
|
*/ |
*/ |
#include <sys/types.h> |
#include <sys/types.h> |
|
|
|
#include <signal.h> |
#include <stddef.h> |
#include <stddef.h> |
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
Line 36 struct tag_entry { |
|
Line 37 struct tag_entry { |
|
char s[]; |
char s[]; |
}; |
}; |
|
|
|
static void tag_signal(int); |
static void *tag_alloc(size_t, void *); |
static void *tag_alloc(size_t, void *); |
static void tag_free(void *, void *); |
static void tag_free(void *, void *); |
static void *tag_calloc(size_t, size_t, void *); |
static void *tag_calloc(size_t, size_t, void *); |
|
|
struct ohash_info tag_info; |
struct ohash_info tag_info; |
|
|
tag_fn = mandoc_strdup("/tmp/man.XXXXXXXXXX"); |
tag_fn = mandoc_strdup("/tmp/man.XXXXXXXXXX"); |
|
signal(SIGHUP, tag_signal); |
|
signal(SIGINT, tag_signal); |
|
signal(SIGTERM, tag_signal); |
if ((tag_fd = mkstemp(tag_fn)) == -1) { |
if ((tag_fd = mkstemp(tag_fn)) == -1) { |
free(tag_fn); |
free(tag_fn); |
tag_fn = NULL; |
tag_fn = NULL; |
Line 156 tag_unlink(void) |
|
Line 161 tag_unlink(void) |
|
|
|
if (tag_fn != NULL) |
if (tag_fn != NULL) |
unlink(tag_fn); |
unlink(tag_fn); |
|
} |
|
|
|
static void |
|
tag_signal(int signum) |
|
{ |
|
|
|
tag_unlink(); |
|
signal(signum, SIG_DFL); |
|
kill(getpid(), signum); |
|
/* NOTREACHED */ |
|
_exit(1); |
} |
} |
|
|
/* |
/* |