$NetBSD: patch-cj,v 1.2 2007/03/16 22:04:55 bad Exp $

isoinfo extracts files at the painful rate of 1 sector at a time.  This patch
speeds up file extraction significantly by using a much larger buffer.

--- mkisofs/diag/isoinfo.c.orig	2006-10-19 12:31:36.000000000 +0200
+++ mkisofs/diag/isoinfo.c
@@ -649,7 +649,7 @@ extract_file(idr)
 	struct iso_directory_record *idr;
 {
 	int		extent, len, tlen;
-	unsigned char	buff[2048];
+	unsigned char	buff[204800];
 
 #if	defined(__CYGWIN32__) || defined(__CYGWIN__) || defined(__EMX__) || defined(__DJGPP__)
 	setmode(fileno(stdout), O_BINARY);
@@ -659,16 +659,15 @@ extract_file(idr)
 	len = isonum_733((unsigned char *)idr->size);
 
 	while (len > 0) {
-#ifdef	USE_SCG
-		readsecs(extent - sector_offset, buff, ISO_BLOCKS(sizeof (buff)));
 		tlen = (len > sizeof (buff) ? sizeof (buff) : len);
+#ifdef	USE_SCG
+		readsecs(extent - sector_offset, buff, ISO_BLOCKS(tlen));
 #else
 		lseek(fileno(infile), ((off_t)(extent - sector_offset)) << 11, SEEK_SET);
-		tlen = (len > sizeof (buff) ? sizeof (buff) : len);
 		read(fileno(infile), buff, tlen);
 #endif
 		len -= tlen;
-		extent++;
+		extent += ISO_BLOCKS(tlen);
 		write(STDOUT_FILENO, buff, tlen);
 	}
 }
