- Add support for -k command line option as there is in bzip2(1)

- Bump PORTREVISION

PR:		ports/113397
Submitted by:	Ighighi <ighighi@gmail.com>
This commit is contained in:
Gabor Kovesdan 2007-06-06 18:22:47 +00:00
parent 90c75aeaa1
commit e868096dc2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=192943
3 changed files with 97 additions and 0 deletions

View File

@ -7,6 +7,7 @@
PORTNAME= gzip
PORTVERSION= 1.3.12
PORTREVISION= 1
CATEGORIES= archivers
MASTER_SITES= ${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR= ${PORTNAME}

View File

@ -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:

View File

@ -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)