build_temporary_name();
signal(SIGINT, interrupt);
+#ifdef SIGHUP
signal(SIGHUP, interrupt);
+#endif
old_umask = umask(077);
afp = xfopen(temporary_name, WRITE_BINARY);
build_backup_name(backup_archive_name, archive_name);
if (!noexec) {
signal(SIGINT, SIG_IGN);
+#ifdef SIGHUP
signal(SIGHUP, SIG_IGN);
+#endif
if (rename(archive_name, backup_archive_name) < 0)
fatal_error(archive_name);
recover_archive_when_interrupt = TRUE;
signal(SIGINT, interrupt);
+#ifdef SIGHUP
signal(SIGHUP, interrupt);
+#endif
}
}
if (verbose)
printf("Making directory \"%s\".\n", path);
+#if defined __MINGW32__
+ if (mkdir(path) >= 0)
+ return TRUE;
+#else
if (mkdir(path, 0777) >= 0) /* try */
return TRUE; /* successful done. */
+#endif
errno = 0;
if (!make_parent_path(path))
return FALSE;
+#if defined __MINGW32__
+ if (mkdir(path) < 0)
+ message("Cannot make directory", path);
+ return FALSE;
+#else
if (mkdir(path, 0777) < 0) { /* try again */
message("Cannot make directory", path);
return FALSE;
}
+#endif
return TRUE;
}
}
signal(SIGINT, interrupt);
+#ifdef SIGHUP
signal(SIGHUP, interrupt);
+#endif
unlink(name);
errno = 0;
}
remove_extracting_file_when_interrupt = FALSE;
signal(SIGINT, SIG_DFL);
+#ifdef SIGHUP
signal(SIGHUP, SIG_DFL);
-
+#endif
if (!fp)
return;
}