update_archive (void)
{
enum read_header previous_status = HEADER_STILL_UNREAD;
- int found_end = 0;
+ bool found_end = false;
name_gather ();
open_archive (ACCESS_UPDATE);
{
struct name *name;
+ 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)
{
struct stat s;
- enum archive_format unused;
- decode_header (current_header, ¤t_stat_info, &unused, 0);
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)
add_avoided_name (current_stat_info.file_name);
}
+
skip_member ();
break;
}
case HEADER_ZERO_BLOCK:
current_block = current_header;
- found_end = 1;
+ found_end = true;
break;
case HEADER_END_OF_FILE:
- found_end = 1;
+ found_end = true;
break;
case HEADER_FAILURE:
break;
}
+ tar_stat_destroy (¤t_stat_info);
+ xheader_destroy (&extended_header);
previous_status = status;
}