write_record (1);
}
}
- }
- if (logical_status == HEADER_END_OF_FILE)
- {
- /* Write the end of tape. FIXME: we can't use write_eot here,
- as it gets confused when the input is at end of file. */
+ if (logical_status == HEADER_END_OF_FILE)
+ {
+ /* Write the end of tape. FIXME: we can't use write_eot here,
+ as it gets confused when the input is at end of file. */
- int total_zero_blocks = 0;
+ int total_zero_blocks = 0;
- do
+ do
+ {
+ int zero_blocks = blocking_factor - new_blocks;
+ memset (new_record + new_blocks, 0, BLOCKSIZE * zero_blocks);
+ total_zero_blocks += zero_blocks;
+ write_record (total_zero_blocks < 2);
+ }
+ while (total_zero_blocks < 2);
+ }
+
+ if (! acting_as_filter && ! _isrmt (archive))
{
- int zero_blocks = blocking_factor - new_blocks;
- memset (new_record + new_blocks, 0, BLOCKSIZE * zero_blocks);
- total_zero_blocks += zero_blocks;
- write_record (total_zero_blocks < 2);
+ if (sys_truncate (archive))
+ truncate_warn (archive_name_array[0]);
}
- while (total_zero_blocks < 2);
}
-
free (new_record);
- if (! acting_as_filter && ! _isrmt (archive))
- {
- if (sys_truncate (archive))
- truncate_warn (archive_name_array[0]);
- }
-
close_archive ();
names_notfound ();
}