-short_read:
- more = record_start->buffer + status;
- left = record_size - status;
-
-again:
- if ((unsigned) left % BLOCKSIZE == 0)
- {
- /* FIXME: for size=0, multi-volume support. On the first record, warn
- about the problem. */
-
- if (!read_full_records_option && verbose_option
- && record_start_block == 0 && status > 0)
- WARN ((0, 0, _("Record size = %d blocks"), status / BLOCKSIZE));
-
- record_end
- = record_start + ((unsigned) (record_size - left)) / BLOCKSIZE;
-
- return;
- }
- if (read_full_records_option)
- {
- /* User warned us about this. Fix up. */
-
- if (left > 0)
- {
- error2loop:
- status = rmtread (archive, more, (unsigned int) left);
- if (status < 0)
- {
- read_error ();
- goto error2loop; /* try again */
- }
- if (status == 0)
- FATAL_ERROR ((0, 0, _("Archive %s EOF not on block boundary"),
- *archive_name_cursor));
- left -= status;
- more += status;
- goto again;
- }
- }
- else
- FATAL_ERROR ((0, 0, _("Only read %d bytes from archive %s"),
- status, *archive_name_cursor));