- /* Looks like it's a compressed dump block prefix, */
- /* read in the rest of the block based on tpb->length. */
- len = tpb->length - TP_BSIZE + PREFIXSIZE;
- if (read_a_block(mt, tapebuf+TP_BSIZE, len, &i) <= 0
- || i != len)
- errx(1,"Error reading dump file header");
- tbufptr = tpb->buf;
- numtrec = ntrec = tpb->length / TP_BSIZE;
+ /* It's a compressed dump file, read in the */
+ /* rest of the block based on spclpt->c_ntrec. */
+ if (spclpt->c_ntrec > ntrec)
+ errx(1, "Tape blocksize is too large, use "
+ "\'-b %d\' ", spclpt->c_ntrec);
+ ntrec = spclpt->c_ntrec;
+ len = (ntrec - 1) * TP_BSIZE;