|
@@ -0,0 +1,76 @@
|
|
|
+--- busybox-1.4.1/archival/tar.c Wed Jan 24 22:49:25 2007
|
|
|
++++ busybox-1.4.1-tar_t/archival/tar.c Sun Feb 25 21:50:35 2007
|
|
|
+@@ -760,7 +760,9 @@
|
|
|
+ const char *tar_filename = "-";
|
|
|
+ unsigned opt;
|
|
|
+ int verboseFlag = 0;
|
|
|
++#if ENABLE_FEATURE_TAR_LONG_OPTIONS && ENABLE_FEATURE_TAR_FROM
|
|
|
+ llist_t *excludes = NULL;
|
|
|
++#endif
|
|
|
+
|
|
|
+ /* Initialise default values */
|
|
|
+ tar_handle = init_handle();
|
|
|
+@@ -773,7 +775,9 @@
|
|
|
+ "tt:vv:" // count -t,-v
|
|
|
+ "?:" // bail out with usage instead of error return
|
|
|
+ "X::T::" // cumulative lists
|
|
|
++#if ENABLE_FEATURE_TAR_LONG_OPTIONS && ENABLE_FEATURE_TAR_FROM
|
|
|
+ "\xff::" // cumulative lists for --exclude
|
|
|
++#endif
|
|
|
+ USE_FEATURE_TAR_CREATE("c:") "t:x:" // at least one of these is reqd
|
|
|
+ USE_FEATURE_TAR_CREATE("c--tx:t--cx:x--ct") // mutually exclusive
|
|
|
+ SKIP_FEATURE_TAR_CREATE("t--x:x--t"); // mutually exclusive
|
|
|
+@@ -788,14 +792,15 @@
|
|
|
+ USE_FEATURE_TAR_FROM( "T:X:")
|
|
|
+ USE_FEATURE_TAR_GZIP( "z" )
|
|
|
+ USE_FEATURE_TAR_COMPRESS("Z" )
|
|
|
+- ,
|
|
|
+- &base_dir, // -C dir
|
|
|
+- &tar_filename, // -f filename
|
|
|
+- USE_FEATURE_TAR_FROM(&(tar_handle->accept),) // T
|
|
|
+- USE_FEATURE_TAR_FROM(&(tar_handle->reject),) // X
|
|
|
+- USE_FEATURE_TAR_FROM(&excludes ,) // --exclude
|
|
|
+- &verboseFlag, // combined count for -t and -v
|
|
|
+- &verboseFlag // combined count for -t and -v
|
|
|
++ , &base_dir // -C dir
|
|
|
++ , &tar_filename // -f filename
|
|
|
++ USE_FEATURE_TAR_FROM(, &(tar_handle->accept)) // T
|
|
|
++ USE_FEATURE_TAR_FROM(, &(tar_handle->reject)) // X
|
|
|
++#if ENABLE_FEATURE_TAR_LONG_OPTIONS && ENABLE_FEATURE_TAR_FROM
|
|
|
++ , &excludes // --exclude
|
|
|
++#endif
|
|
|
++ , &verboseFlag // combined count for -t and -v
|
|
|
++ , &verboseFlag // combined count for -t and -v
|
|
|
+ );
|
|
|
+
|
|
|
+ if (verboseFlag) tar_handle->action_header = header_verbose_list;
|
|
|
+@@ -828,17 +833,19 @@
|
|
|
+ if (opt & OPT_COMPRESS)
|
|
|
+ get_header_ptr = get_header_tar_Z;
|
|
|
+
|
|
|
+- if (ENABLE_FEATURE_TAR_FROM) {
|
|
|
+- tar_handle->reject = append_file_list_to_list(tar_handle->reject);
|
|
|
+- /* Append excludes to reject */
|
|
|
+- while (excludes) {
|
|
|
+- llist_t *temp = excludes->link;
|
|
|
+- excludes->link = tar_handle->reject;
|
|
|
+- tar_handle->reject = excludes;
|
|
|
+- excludes = temp;
|
|
|
+- }
|
|
|
+- tar_handle->accept = append_file_list_to_list(tar_handle->accept);
|
|
|
++#if ENABLE_FEATURE_TAR_FROM
|
|
|
++ tar_handle->reject = append_file_list_to_list(tar_handle->reject);
|
|
|
++#if ENABLE_FEATURE_TAR_LONG_OPTIONS
|
|
|
++ /* Append excludes to reject */
|
|
|
++ while (excludes) {
|
|
|
++ llist_t *next = excludes->link;
|
|
|
++ excludes->link = tar_handle->reject;
|
|
|
++ tar_handle->reject = excludes;
|
|
|
++ excludes = next;
|
|
|
+ }
|
|
|
++#endif
|
|
|
++ tar_handle->accept = append_file_list_to_list(tar_handle->accept);
|
|
|
++#endif
|
|
|
+
|
|
|
+ /* Check if we are reading from stdin */
|
|
|
+ if (argv[optind] && *argv[optind] == '-') {
|