+ if (bytes_left < buffer_size)
+ {
+ buffer_size = bytes_left;
+ status = buffer_size % BLOCKSIZE;
+ if (status)
+ memset (start->buffer + bytes_left, 0, BLOCKSIZE - status);
+ }
+
+ status = safe_read (handle, start->buffer, buffer_size);
+ if (status < 0)
+ FATAL_ERROR ((0, errno,
+ _("Read error at byte %s reading %lu bytes in file %s"),
+ STRINGIFY_BIGINT (stat_data.st_size - bytes_left,
+ buf),
+ (unsigned long) buffer_size, path));
+ if (status == 0)
+ FATAL_ERROR ((0, 0, _("%s: File shrunk by %s bytes, (yark!)"),
+ path, STRINGIFY_BIGINT (bytes_left, buf)));