more = record_start->buffer + status;
left = record_size - status;
+ if (left && left % BLOCKSIZE == 0
+ && verbose_option
+ && record_start_block == 0 && status != 0)
+ {
+ unsigned long rsize = status / BLOCKSIZE;
+ WARN ((0, 0,
+ ngettext ("Record size = %lu block",
+ "Record size = %lu blocks",
+ rsize),
+ rsize));
+ }
+
while (left % BLOCKSIZE != 0
|| (left && status && read_full_records))
{
rest));
}
- /* User warned us about this. Fix up. */
-
left -= status;
more += status;
}
- /* FIXME: for size=0, multi-volume support. On the first record, warn
- about the problem. */
-
- if (!read_full_records && verbose_option > 1
- && record_start_block == 0 && status != 0)
- {
- unsigned long rsize = (record_size - left) / BLOCKSIZE;
- WARN ((0, 0,
- ngettext ("Record size = %lu block",
- "Record size = %lu blocks",
- rsize),
- rsize));
- }
-
record_end = record_start + (record_size - left) / BLOCKSIZE;
records_read++;
}
{
while (!try_new_volume ())
;
+ if (current_block == record_end)
+ /* Necessary for blocking_factor == 1 */
+ flush_archive();
return;
}
else if (status == SAFE_READ_ERROR)