}
else if (strcmp (archive_name_array[0], "-") == 0)
{
- read_full_records_option = 1; /* could be a pipe, be safe */
+ read_full_records_option = true; /* could be a pipe, be safe */
if (verify_option)
FATAL_ERROR ((0, 0, _("Cannot verify stdin/stdout archive")));
else
strcpy (record_start->header.name, volume_label_option);
- assign_string (¤t_stat_info.file_name, record_start->header.name);
- current_stat_info.had_trailing_slash = strip_trailing_slashes (current_stat_info.file_name);
+ assign_string (¤t_stat_info.file_name,
+ record_start->header.name);
+ current_stat_info.had_trailing_slash =
+ strip_trailing_slashes (current_stat_info.file_name);
record_start->header.typeflag = GNUTYPE_VOLHDR;
TIME_TO_CHARS (start_time, record_start->header.mtime);
return;
}
+ /* The condition below used to include
+ || (status > 0 && !read_full_records_option)
+ This is incorrect since even if new_volume() succeeds, the
+ subsequent call to rmtread will overwrite the chunk of data
+ already read in the buffer, so the processing will fail */
+
if ((status == 0
- || (status < 0 && errno == ENOSPC)
- || (status > 0 && !read_full_records_option))
+ || (status < 0 && errno == ENOSPC))
&& multi_volume_option)
{
union block *cursor;