#include <h/mh.h>
#include <h/utils.h>
#include <h/signals.h>
+#include "m_maildir.h"
+#include "m_mktemp.h"
static void register_for_removal(const char *);
{
static char tmpfil[BUFSIZ];
int fd = -1;
- int keep_open = 0;
mode_t oldmode = umask(077);
if (pfx_in == NULL) {
register_for_removal(tmpfil);
+ bool keep_open = false;
if (fd_ret != NULL) {
*fd_ret = fd;
- keep_open = 1;
+ keep_open = true;
}
if (fp_ret != NULL) {
FILE *fp = fdopen(fd, "w+");
return NULL;
}
*fp_ret = fp;
- keep_open = 1;
+ keep_open = true;
}
if (!keep_open) {
close(fd);
{
char *tmpfil;
int fd = -1;
- int keep_open = 0;
mode_t oldmode = umask(077);
if (suffix == NULL) {
register_for_removal(tmpfil);
+ bool keep_open = false;
if (fd_ret != NULL) {
*fd_ret = fd;
- keep_open = 1;
+ keep_open = true;
}
if (fp_ret != NULL) {
FILE *fp = fdopen(fd, "w+");
return NULL;
}
*fp_ret = fp;
- keep_open = 1;
+ keep_open = true;
}
if (!keep_open) {
close(fd);
char *
-get_temp_dir()
+get_temp_dir(void)
{
/* Ignore envvars if we are setuid */
if ((getuid()==geteuid()) && (getgid()==getegid())) {
static void
register_for_removal(const char *pathname) {
if (exit_filelist == NULL) exit_filelist = svector_create(20);
- (void) svector_push_back(exit_filelist, add(pathname, NULL));
+ (void) svector_push_back(exit_filelist, mh_xstrdup(pathname));
}
/*
* Remove all registered temporary files.
*/
void
-remove_registered_files_atexit() {
+remove_registered_files_atexit(void) {
unregister_for_removal(1);
}