New tool Vfix: truncate the right edge of 'grey' type images to make
the scanline width a multiple of 4.

VFile: use gl.gversion() to distinguish 4.0.1 and 4.0.5 Indigos;
truncate width and height to multiples of packfactor.

Vinfo: add -t to descriptive comment; print '!' after packfactor for
files that should be fixed with Vfix.
diff --git a/Demo/sgi/video/VFile.py b/Demo/sgi/video/VFile.py
index 12e087c..6443fb6 100755
--- a/Demo/sgi/video/VFile.py
+++ b/Demo/sgi/video/VFile.py
@@ -309,10 +309,11 @@
 			data, width, height, bytes = jpeg.decompress(data)
 			if self.format == 'jpeg':
 				b = 4
+				p = 1
 			else:
 				b = 1
-				width, height = width*pf, height*pf
-			if (width, height, bytes) <> (w, h, b):
+				p = pf
+			if (width, height, bytes) <> (w/p, h/p, b):
 				raise Error, 'jpeg data has wrong size'
 		if not self.colormapinited:
 			self.initcolormap()
@@ -359,14 +360,15 @@
 			gl.RGBcolor(200, 200, 200) # XXX rather light grey
 			gl.clear()
 			return
-## XXX Unfortunately this doesn't work on IRIX 4.0.1...
-##		if self.format == 'rgb8' and is_entry_indigo():
-##			gl.RGBmode()
-##			gl.gconfig()
-##			gl.RGBcolor(200, 200, 200) # XXX rather light grey
-##			gl.clear()
-##			gl.pixmode(GL.PM_SIZE, 8)
-##			return
+		# This only works on an Entry-level Indigo from IRIX 4.0.5
+		if self.format == 'rgb8' and is_entry_indigo() and \
+			  gl.gversion() == 'GL4DLG-4.0.': # Note trailing '.'!
+			gl.RGBmode()
+			gl.gconfig()
+			gl.RGBcolor(200, 200, 200) # XXX rather light grey
+			gl.clear()
+			gl.pixmode(GL.PM_SIZE, 8)
+			return
 		gl.cmode()
 		gl.gconfig()
 		self.skipchrom = 0
@@ -571,6 +573,9 @@
 		packfactor = 2
 	else:
 		raise Error, filename + ': Bad (w,h,pf) info'
+	if packfactor > 1:
+		width = (width / packfactor) * packfactor
+		height = (height / packfactor) * packfactor
 	#
 	# Return (version, values)
 	#