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-0861e828d028cdb6ad0798143a88c9eb6fabb631.tar.gz
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)
break;
case 'x':
ctx_flag |= CTX_EXTRACT;
- tar_handle->action_data = data_extract_all;
+ if (tar_handle->action_data != data_extract_to_stdout) {
+ tar_handle->action_data = data_extract_all;
+ }
break;
/* 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 @@
+echo foo > foo
+tar cf foo.tar foo
+cat foo.tar | busybox tar Ox | cmp foo -