tar -t hotfix
authorPeter Korsgaard <jacmet@sunsite.dk>
Tue, 27 Feb 2007 09:04:31 +0000 (09:04 -0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Tue, 27 Feb 2007 09:04:31 +0000 (09:04 -0000)
package/busybox/busybox-1.4.1-tar_t.patch [new file with mode: 0644]

diff --git a/package/busybox/busybox-1.4.1-tar_t.patch b/package/busybox/busybox-1.4.1-tar_t.patch
new file mode 100644 (file)
index 0000000..c8e5d78
--- /dev/null
@@ -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] == '-') {