X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fupdate.c;h=fa18c1d67a5e33ab43ad22b14b9ed7a2fa37e369;hb=250db35f17d7700f4d209fd086b7dbc5b7ebe88f;hp=6b4c9c06496e96a70cf3c06ca5ecb6201b8d06fa;hpb=7347b4f5d51c15bb19637ea52e9bf7dff832cc52;p=chaz%2Ftar diff --git a/src/update.c b/src/update.c index 6b4c9c0..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 @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Implement the 'r', 'u' and 'A' options for tar. 'A' means that the file names are tar files, and they should simply be appended to the end @@ -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; }