/* Update a tar archive.
Copyright (C) 1988, 1992, 1994, 1996, 1997, 1999, 2000, 2001, 2003,
- 2004 Free Software Foundation, Inc.
+ 2004, 2005, 2007 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
- Free Software Foundation; either version 2, or (at your option) any later
+ Free Software Foundation; either version 3, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but
name_gather ();
open_archive (ACCESS_UPDATE);
- xheader_write_global ();
+ buffer_write_global_xheader ();
while (!found_end)
{
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)
{
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);
}
}
tar_stat_destroy (¤t_stat_info);
- xheader_destroy (&extended_header);
previous_status = status;
}