X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fcompare.c;h=273269a140916af81a9e2c0515bace0658e254fb;hb=1a44d77d50f4fb37c0410eed04b82303624ea2ec;hp=6b7e6d8747053bebfef98bcf27707ba9d3b1d489;hpb=dda6367c9eac71da8f2ab1c60b3df60f19ce4755;p=debian%2Ftar diff --git a/src/compare.c b/src/compare.c index 6b7e6d87..273269a1 100644 --- a/src/compare.c +++ b/src/compare.c @@ -234,7 +234,8 @@ diff_file (void) else read_and_process (¤t_stat_info, process_rawdata); - if (atime_preserve_option == replace_atime_preserve) + if (atime_preserve_option == replace_atime_preserve + && stat_data.st_size != 0) { struct timespec atime = get_stat_atime (&stat_data); if (set_file_atime (diff_handle, chdir_fd, file_name, atime) @@ -512,13 +513,22 @@ diff_archive (void) void verify_volume (void) { + int may_fail = 0; if (removed_prefixes_p ()) { WARN((0, 0, _("Archive contains file names with leading prefixes removed."))); + may_fail = 1; + } + if (transform_program_p ()) + { WARN((0, 0, - _("Verification may fail to locate original files."))); + _("Archive contains transformed file names."))); + may_fail = 1; } + if (may_fail) + WARN((0, 0, + _("Verification may fail to locate original files."))); if (!diff_buffer) diff_init (); @@ -611,8 +621,10 @@ verify_volume (void) (0, 0, _("A lone zero block at %s"), STRINGIFY_BIGINT (current_block_ordinal (), buf))); } + continue; } + decode_header (current_header, ¤t_stat_info, ¤t_format, 1); diff_archive (); tar_stat_destroy (¤t_stat_info); }