Index: trunk/Ohana/src/opihi/cmd.data/vcontour.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vcontour.c	(revision 3693)
+++ trunk/Ohana/src/opihi/cmd.data/vcontour.c	(revision 5846)
@@ -42,23 +42,12 @@
 
 # define DUMP { \
-sprintf (&buffer[Nline*128], "%14s %20.10f %20.10f %20.10f %20.10f \0", "LINE", Npix*x, Npix*y, Npix*dx, Npix*dy); \
-Nline ++; \
-if (Nline == 512) { \
-  SendGraphCommand (Ximage, 16, "NLINES  %7d \0", Nline); \
-  write (Ximage, buffer, Nline*128); \
-  bzero (buffer, 65536); \
-  Nline = 0; \
-} \
-continue; }
-
-# define NUMP { \
-sprintf (&buffer[Nline*128], "%14s %20.10f %20.10f %20.10f %20.10f \0", "LINE", Npix*x, Npix*y, Npix*dx, Npix*dy); \
-Nline ++; \
-if (Nline == 512) { \
-  SendGraphCommand (Ximage, 16, "NLINES  %7d \0", Nline); \
-  write (Ximage, buffer, Nline*128); \
-  bzero (buffer, 65536); \
-  Nline = 0; \
-} }
+overlay[Noverlay].type = KII_OVERLAY_LINE; \
+overlay[Noverlay].x = Npix*x; \
+overlay[Noverlay].y = Npix*y; \
+overlay[Noverlay].dx = Npix*dx; \
+overlay[Noverlay].dy = Npix*dy; \
+Noverlay ++; \
+CHECK_REALLOCATE (overlay, KiiOverlay, NOVERLAY, Noverlay, 1000); \
+}
 
 int vcontour (int argc, char **argv) {
@@ -110,4 +99,8 @@
   /* not really finished */
 
+  Noverlay = 0;
+  NOVERLAY = 1000;
+  ALLOCATE (overlay, KiiOverlay, NOVERLAY);
+
   v01 = matrix + 1;
   v10 = matrix + Nx;
@@ -132,18 +125,22 @@
 	  LL;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 > 0) && (d11 <= 0)) { /* -  */
 	  HZ;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 > 0) && (d11 > 0)) { /* /  */
 	  UL;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 <= 0) && (d11 > 0)) { /* \\  */
 	  LL;
-	  NUMP;
+	  DUMP;
 	  UR;
 	  DUMP;
+	  continue;
 	}
       }
@@ -153,18 +150,22 @@
 	  LL;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 <= 0) && (d11 > 0)) { /* -  */
 	  HZ;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 <= 0) && (d11 <= 0)) { /* /  */
 	  UL;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 > 0) && (d11 <= 0)) { /* //  */
 	  UL;
-	  NUMP;
+	  DUMP;
 	  LR;
 	  DUMP;
+	  continue;
 	}
       }
@@ -175,12 +176,15 @@
 	  LR;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 <= 0) && (d11 > 0)) {
 	  UR;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 > 0) && (d11 > 0)) {
 	  VT;
 	  DUMP;
+	  continue;
 	}
       }
@@ -190,12 +194,15 @@
 	  LR;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 > 0) && (d11 <= 0)) {
 	  UR;
 	  DUMP;
+	  continue;
 	}
 	if ((d01 <= 0) && (d11 <= 0)) {
 	  VT;
 	  DUMP;
+	  continue;
 	}
       }
@@ -217,5 +224,6 @@
     if (((*v00 > level) && (*v01 <= level)) || ((*v00 <= level) && (*v01 > level))) {
       x = i + (level - *v01)/(*v01 - *v00);
-      NUMP;
+      DUMP;
+      continue;
     }
   }
@@ -230,5 +238,6 @@
     if (((*v00 > level) && (*v01 <= level)) || ((*v00 <= level) && (*v01 > level))) {
       x = i + (level - *v01)/(*v01 - *v00);
-      NUMP;
+      DUMP;
+      continue;
     }
   }
@@ -243,5 +252,6 @@
     if (((*v00 > level) && (*v01 <= level)) || ((*v00 <= level) && (*v01 > level))) {
       y = j + (level - *v01)/(*v01 - *v00);
-      NUMP;
+      DUMP;
+      continue;
     }
   }
@@ -256,15 +266,12 @@
     if (((*v00 > level) && (*v01 <= level)) || ((*v00 <= level) && (*v01 > level))) {
       y = j + (level - *v01)/(*v01 - *v00);
-      NUMP;
+      DUMP;
+      continue;
     }
   }
   
-  if (Nline > 0) {
-    SendGraphCommand (Ximage, 16, "NLINES  %7d \0", Nline); 
-    write (Ximage, buffer, Nline*128); 
-  }
-
-  free (buffer);
-  SendGraphCommand (Ximage, 16, "DONE");
+  KiiLoadOverlay (Ximage, overlay, Noverlay, argv[2]);
+  free (overlay);
+
   if (Npix != 1) free (matrix);
   fprintf (stderr, "\n");
