* archival/bunzip2.c (bunzip2_main): Remove compressed file.

* testsuite/bunzip2/bunzip2-removes-compressed-file: New.
This commit is contained in:
Matt Kraai 2002-03-27 17:46:44 +00:00
parent 35d60421b4
commit cf32ac543c
2 changed files with 22 additions and 2 deletions

View File

@ -2323,10 +2323,12 @@ int bunzip2_main(int argc, char **argv)
const int bunzip_force = 2; const int bunzip_force = 2;
int flags = 0; int flags = 0;
int opt = 0; int opt = 0;
int status;
FILE *src_stream; FILE *src_stream;
FILE *dst_stream; FILE *dst_stream;
char *save_name = NULL; char *save_name = NULL;
char *delete_name = NULL;
/* if called as bzcat */ /* if called as bzcat */
if (strcmp(applet_name, "bzcat") == 0) if (strcmp(applet_name, "bzcat") == 0)
@ -2369,7 +2371,22 @@ int bunzip2_main(int argc, char **argv)
} else { } else {
dst_stream = xfopen(save_name, "w"); dst_stream = xfopen(save_name, "w");
} }
uncompressStream(src_stream, dst_stream);
return(TRUE); if (uncompressStream(src_stream, dst_stream)) {
if (save_name != NULL)
delete_name = argv[optind];
status = EXIT_SUCCESS;
} else {
if (save_name != NULL)
delete_name = save_name;
status = EXIT_FAILURE;
}
if (delete_name) {
if (unlink(delete_name) < 0) {
error_msg_and_die("Couldn't remove %s", delete_name);
}
}
return status;
} }

View File

@ -0,0 +1,3 @@
echo foo | bzip2 >foo.bz2
busybox bunzip2 foo.bz2
test ! -f foo.bz2