Fix tar-handles-nested-exclude testcase
authorGlenn L McGrath <bug1@ihug.co.nz>
Thu, 20 Nov 2003 10:47:06 +0000 (10:47 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Thu, 20 Nov 2003 10:47:06 +0000 (10:47 -0000)
archival/libunarchive/get_header_tar.c
archival/tar.c

index 5354af8d7e4b999820c0d68849a0ce3edb6fe9f2..d55189f42fc47f264d9efedf3f7ecc1a97d749e0 100644 (file)
@@ -106,6 +106,14 @@ extern char get_header_tar(archive_handle_t *archive_handle)
                file_header->name = concat_path_file(tar.formated.prefix, tar.formated.name);
        }
 
+       {       /* Strip trailing '/' in directories */
+               char *tmp = last_char_is(file_header->name, '/');
+               if (tmp) {
+                       *tmp = '\0';
+               }
+       }
+
+
        file_header->mode = strtol(tar.formated.mode, NULL, 8);
        file_header->uid = strtol(tar.formated.uid, NULL, 8);
        file_header->gid = strtol(tar.formated.gid, NULL, 8);
index c8a2bd38540e17f3d8e44038be998be40d056094..b3fa447f25376180add14c1e7546111bff0b3b57 100644 (file)
@@ -731,6 +731,11 @@ int tar_main(int argc, char **argv)
        /* Setup an array of filenames to work with */
        /* TODO: This is the same as in ar, seperate function ? */
        while (optind < argc) {
+               char *filename_ptr;
+               filename_ptr = last_char_is(argv[optind], '/');
+               if (filename_ptr) {
+                       *filename_ptr = '\0';
+               }
                tar_handle->accept = llist_add_to(tar_handle->accept, argv[optind]);
                optind++;
        }