cpio: fix -m to actually work as expected (Pascal Bellard)
authorDenis Vlasenko <vda.linux@googlemail.com>
Fri, 27 Jun 2008 15:52:07 +0000 (15:52 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Fri, 27 Jun 2008 15:52:07 +0000 (15:52 -0000)
function                                             old     new   delta
cpio_main                                           1140    1153     +13

archival/cpio.c

index 2919ff8..0147d0e 100644 (file)
@@ -204,7 +204,7 @@ int cpio_main(int argc ATTRIBUTE_UNUSED, char **argv)
        archive_handle = init_handle();
        archive_handle->src_fd = STDIN_FILENO;
        archive_handle->seek = seek_by_read;
-       archive_handle->flags = ARCHIVE_EXTRACT_NEWER | ARCHIVE_PRESERVE_DATE;
+       archive_handle->flags = ARCHIVE_EXTRACT_NEWER;
 
 #if ENABLE_FEATURE_CPIO_O
        opt = getopt32(argv, "ituvF:dmoH:", &cpio_filename, &cpio_fmt);
@@ -258,6 +258,9 @@ int cpio_main(int argc ATTRIBUTE_UNUSED, char **argv)
        if (opt & CPIO_OPT_CREATE_LEADING_DIR) {
                archive_handle->flags |= ARCHIVE_CREATE_LEADING_DIRS;
        }
+       if (opt & CPIO_OPT_PRESERVE_MTIME) {
+               archive_handle->flags |= ARCHIVE_PRESERVE_DATE;
+       }
 
        while (*argv) {
                archive_handle->filter = filter_accept_list;