diff options
Diffstat (limited to 'archivers')
-rw-r--r-- | archivers/gzip/Makefile | 1 | ||||
-rw-r--r-- | archivers/gzip/files/patch-gzip.1 | 30 | ||||
-rw-r--r-- | archivers/gzip/files/patch-gzip.c | 66 |
3 files changed, 97 insertions, 0 deletions
diff --git a/archivers/gzip/Makefile b/archivers/gzip/Makefile index 905e79f35ccd..f4c82486bd4c 100644 --- a/archivers/gzip/Makefile +++ b/archivers/gzip/Makefile @@ -7,6 +7,7 @@ PORTNAME= gzip PORTVERSION= 1.3.12 +PORTREVISION= 1 CATEGORIES= archivers MASTER_SITES= ${MASTER_SITE_GNU} MASTER_SITE_SUBDIR= ${PORTNAME} diff --git a/archivers/gzip/files/patch-gzip.1 b/archivers/gzip/files/patch-gzip.1 new file mode 100644 index 000000000000..319802792e35 --- /dev/null +++ b/archivers/gzip/files/patch-gzip.1 @@ -0,0 +1,30 @@ +--- gzip.1.orig Fri Dec 8 14:45:37 2006 ++++ gzip.1 Tue Jun 5 21:44:20 2007 +@@ -4,7 +4,7 @@ + .SH SYNOPSIS + .ll +8 + .B gzip +-.RB [ " \-acdfhlLnNrtvV19 " ] ++.RB [ " \-acdfhklLnNrtvV19 " ] + .RB [ \-S\ suffix ] + [ + .I "name \&..." +@@ -12,7 +12,7 @@ + .ll -8 + .br + .B gunzip +-.RB [ " \-acfhlLnNrtvV " ] ++.RB [ " \-acfhklLnNrtvV " ] + .RB [ \-S\ suffix ] + [ + .I "name \&..." +@@ -223,6 +223,9 @@ + .TP + .B \-h --help + Display a help screen and quit. ++.TP ++.B \-k --keep ++Keep (don't delete) input files during compression or decompression. + .TP + .B \-l --list + For each compressed file, list the following fields: diff --git a/archivers/gzip/files/patch-gzip.c b/archivers/gzip/files/patch-gzip.c new file mode 100644 index 000000000000..e2536dd91c6a --- /dev/null +++ b/archivers/gzip/files/patch-gzip.c @@ -0,0 +1,66 @@ +--- gzip.c.orig Tue Mar 20 01:09:51 2007 ++++ gzip.c Tue Jun 5 21:43:50 2007 +@@ -216,6 +216,8 @@ + suppresses a "Broken Pipe" message with some shells. */ + static int volatile exiting_signal; + ++/* If nonzero, unlink input file on exit. */ ++static int remove_ifname = 1; + /* If nonnegative, close this file descriptor and unlink ofname on error. */ + static int volatile remove_ofname_fd = -1; + +@@ -243,6 +245,7 @@ + /* {"encrypt", 0, 0, 'e'}, encrypt */ + {"force", 0, 0, 'f'}, /* force overwrite of output file */ + {"help", 0, 0, 'h'}, /* give help */ ++ {"keep", 0, 0, 'k'}, /* keep (don't delete) input files */ + /* {"pkzip", 0, 0, 'k'}, force output in pkzip format */ + {"list", 0, 0, 'l'}, /* list .gz file contents */ + {"license", 0, 0, 'L'}, /* display software license */ +@@ -319,6 +322,7 @@ + " -f, --force force overwrite of output file and compress links", + " -h, --help give this help", + /* -k, --pkzip force output in pkzip format */ ++ " -k, --keep keep (don't delete) input files", + " -l, --list list compressed file contents", + " -L, --license display software license", + #ifdef UNDOCUMENTED +@@ -423,7 +427,7 @@ + z_suffix = Z_SUFFIX; + z_len = strlen(z_suffix); + +- while ((optc = getopt_long (argc, argv, "ab:cdfhH?lLmMnNqrS:tvVZ123456789", ++ while ((optc = getopt_long (argc, argv, "ab:cdfhH?klLmMnNqrS:tvVZ123456789", + longopts, (int *)0)) != -1) { + switch (optc) { + case 'a': +@@ -446,6 +450,8 @@ + force++; break; + case 'h': case 'H': + help(); do_exit(OK); break; ++ case 'k': ++ remove_ifname = 0; break; + case 'l': + list = decompress = to_stdout = 1; break; + case 'L': +@@ -825,7 +831,7 @@ + if (!to_stdout) + { + sigset_t oldset; +- int unlink_errno; ++ int unlink_errno = 0; + + copy_stat (&istat); + if (close (ofd) != 0) +@@ -833,7 +839,8 @@ + + sigprocmask (SIG_BLOCK, &caught_signals, &oldset); + remove_ofname_fd = -1; +- unlink_errno = xunlink (ifname) == 0 ? 0 : errno; ++ if (remove_ifname) ++ unlink_errno = xunlink (ifname) == 0 ? 0 : errno; + sigprocmask (SIG_SETMASK, &oldset, NULL); + + if (unlink_errno) + + |