aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Kraai <kraai@debian.org>2003-05-18 21:12:36 +0000
committerMatt Kraai <kraai@debian.org>2003-05-18 21:12:36 +0000
commit0861e828d028cdb6ad0798143a88c9eb6fabb631 (patch)
tree58a8a0d53b85c8c15b69f2bfaa6fd4cc87a92d9a
parent900c8f3362c4f694fea300c4f36322271659ff87 (diff)
downloadbusybox-w32-0861e828d028cdb6ad0798143a88c9eb6fabb631.tar.gz
busybox-w32-0861e828d028cdb6ad0798143a88c9eb6fabb631.tar.bz2
busybox-w32-0861e828d028cdb6ad0798143a88c9eb6fabb631.zip
Handle -O preceding -x.
-rw-r--r--archival/tar.c4
-rw-r--r--testsuite/tar/tar-extracts-to-standard-output3
2 files changed, 6 insertions, 1 deletions
diff --git a/archival/tar.c b/archival/tar.c
index 00f9f87af..29244d4bf 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -645,7 +645,9 @@ int tar_main(int argc, char **argv)
645 break; 645 break;
646 case 'x': 646 case 'x':
647 ctx_flag |= CTX_EXTRACT; 647 ctx_flag |= CTX_EXTRACT;
648 tar_handle->action_data = data_extract_all; 648 if (tar_handle->action_data != data_extract_to_stdout) {
649 tar_handle->action_data = data_extract_all;
650 }
649 break; 651 break;
650 652
651 /* These are optional */ 653 /* These are optional */
diff --git a/testsuite/tar/tar-extracts-to-standard-output b/testsuite/tar/tar-extracts-to-standard-output
new file mode 100644
index 000000000..ca48e364e
--- /dev/null
+++ b/testsuite/tar/tar-extracts-to-standard-output
@@ -0,0 +1,3 @@
1echo foo > foo
2tar cf foo.tar foo
3cat foo.tar | busybox tar Ox | cmp foo -