X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fupdate.c;h=fa18c1d67a5e33ab43ad22b14b9ed7a2fa37e369;hb=89a91c7b440ae92d1cfda33ec391a255573b3814;hp=0db091de9a809d1b3b2d5c103b45dd7977f10307;hpb=120e96c480fbfc5fa31fba0f59ba1a45953b838e;p=chaz%2Ftar diff --git a/src/update.c b/src/update.c index 0db091d..fa18c1d 100644 --- a/src/update.c +++ b/src/update.c @@ -1,7 +1,7 @@ /* Update a tar archive. Copyright (C) 1988, 1992, 1994, 1996, 1997, 1999, 2000, 2001, 2003, - 2004 Free Software Foundation, Inc. + 2004, 2005 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -110,7 +110,7 @@ update_archive (void) name_gather (); open_archive (ACCESS_UPDATE); - xheader_write_global (); + buffer_write_global_xheader (); while (!found_end) { @@ -129,7 +129,7 @@ update_archive (void) decode_header (current_header, ¤t_stat_info, ¤t_format, 0); archive_format = current_format; - + if (subcommand_option == UPDATE_SUBCOMMAND && (name = name_scan (current_stat_info.file_name)) != NULL) { @@ -138,7 +138,9 @@ update_archive (void) chdir_do (name->change_dir); if (deref_stat (dereference_option, current_stat_info.file_name, &s) == 0 - && s.st_mtime <= current_stat_info.stat.st_mtime) + && (tar_timespec_cmp (get_stat_mtime (&s), + current_stat_info.mtime) + <= 0)) add_avoided_name (current_stat_info.file_name); } @@ -179,7 +181,6 @@ update_archive (void) } tar_stat_destroy (¤t_stat_info); - xheader_destroy (&extended_header); previous_status = status; }