Fixed to understand new file format; and cosmetics.
diff --git a/Demo/sgi/video/v2i.c b/Demo/sgi/video/v2i.c
index 41589d4..5f8f3b5 100755
--- a/Demo/sgi/video/v2i.c
+++ b/Demo/sgi/video/v2i.c
@@ -1,9 +1,14 @@
+/* Convert the first image of a CMIF video movie file to SGI .rgb format.
+   usage: v2i videofile imagefile [planemask]
+   link with -limage
+*/
+
 #include <stdio.h>
 #include <gl/image.h>
 
 long bm[1280];
 short rb[1280], gb[1280], bb[1280];
-long h, w;
+long w, h, pf;
 
 #define R(comp) ((comp) & 0xff)
 #define G(comp) (((comp)>>8) & 0xff)
@@ -20,7 +25,7 @@
 
     if( argc != 3 && argc != 4) {
        fprintf(stderr, "Usage: v2i videofile imgfile [planemask]\n");
-       exit(1);
+       exit(2);
     }
     if ( argc == 4)
 	pmask = atoi(argv[3]);
@@ -30,12 +35,23 @@
 	perror(argv[1]);
 	exit(1);
     }
-    gets(lbuf);
-    if ( sscanf(lbuf, "(%d,%d)", &w, &h) != 2) {
+    if (fgets(lbuf, sizeof lbuf, stdin) == NULL) {
+	    fprintf(stderr, "Immediate EOF\n");
+	    exit(1);
+    }
+    if (strncmp(lbuf, "CMIF", 4) == 0) {
+	    /* Skip optional header line */
+	    if (fgets(lbuf, sizeof lbuf, stdin) == NULL) {
+		    fprintf(stderr, "Immediate EOF after header\n");
+		    exit(1);
+	    }
+    }
+    pf = 2; /* Default */
+    if ( sscanf(lbuf, "(%d,%d,%d)", &w, &h, &pf) < 2) {
 	fprintf(stderr, "%s: bad size spec: %s\n", argv[0], lbuf);
 	exit(1);
     }
-    gets(lbuf);		/* Skip time info */
+    fgets(lbuf, sizeof lbuf, stdin); /* Skip time info */
     if ( w > 1280 ) {
 	fprintf(stderr, "%s: Sorry, too wide\n", argv[0]);
 	exit(1);