aboutsummaryrefslogtreecommitdiff
path: root/archivers/arc/files/patch-ad
diff options
context:
space:
mode:
authorKris Kennaway <kris@FreeBSD.org>2000-03-05 09:27:28 +0000
committerKris Kennaway <kris@FreeBSD.org>2000-03-05 09:27:28 +0000
commitcf3d05cb927395f57268d4c69af78d82e622830e (patch)
tree3de0b56eba19bd1f893342599ed85dccf4029798 /archivers/arc/files/patch-ad
parentf8f4645dd1e59d26763e1a7ddf98114db530a8c7 (diff)
Notes
Diffstat (limited to 'archivers/arc/files/patch-ad')
-rw-r--r--archivers/arc/files/patch-ad72
1 files changed, 72 insertions, 0 deletions
diff --git a/archivers/arc/files/patch-ad b/archivers/arc/files/patch-ad
new file mode 100644
index 000000000000..36dc9639f290
--- /dev/null
+++ b/archivers/arc/files/patch-ad
@@ -0,0 +1,72 @@
+--- ./arc.c.orig Tue Apr 14 18:58:59 1992
++++ ./arc.c Wed Aug 11 10:21:06 1999
+@@ -76,11 +76,14 @@
+ #if UNIX
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <unistd.h>
+ #endif
+
+ #include <string.h>
+ #if BSD
+ #include <strings.h>
++#include <err.h>
++#include <errno.h>
+ #endif
+
+ #if !__STDC__
+@@ -101,6 +104,7 @@
+ static char **lst; /* files list */
+ static int lnum; /* length of files list */
+
++int
+ main(num, arg) /* system entry point */
+ int num; /* number of arguments */
+ char *arg[]; /* pointers to arguments */
+@@ -110,7 +114,7 @@
+ VOID upper();/* case conversion routine */
+ char *envfind(); /* environment searcher */
+ int n; /* index */
+- char *arctemp2, *mktemp();
++ char *arctemp2;
+ #if GEMDOS
+ VOID exitpause();
+ int append;
+@@ -219,8 +223,17 @@
+ #endif
+ #if !MSDOS
+ {
+- static char tempname[] = "AXXXXXX";
+- strcat(arctemp, mktemp(tempname));
++ static char tempname[] = "AXXXXXX.arc";
++ int fd=-1;
++ strcat(arctemp, tempname);
++ if((fd = mkstemps(arctemp,4)) == -1 ||
++ (new = fdopen(fd, "w+")) == NULL) {
++ if (fd != -1) {
++ unlink(arctemp);
++ close(fd);
++ }
++ err(1, "can't create temp file %s", arctemp);
++ }
+ }
+ #else
+ strcat(arctemp, "$ARCTEMP");
+@@ -276,7 +289,7 @@
+ keepbak = 1;
+
+ else if (*a == 'W') /* suppress warnings */
+- warn = 0;
++ arcwarn = 0;
+ #if !DOS
+ else if (*a == 'I') /* image mode, no ASCII/EBCDIC x-late */
+ image = !image;
+@@ -401,7 +414,7 @@
+ expandlst(n) /* expand an indirect reference */
+ int n; /* number of entry to expand */
+ {
+- FILE *lf, *fopen(); /* list file, opener */
++ FILE *lf; /* list file, opener */
+ char buf[100]; /* input buffer */
+ int x; /* index */
+ char *p = lst[n] + 1; /* filename pointer */