Index: /branches/kapa-mods-2007-05/Ohana/src/kapa2/src/CheckPipe.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/kapa2/src/CheckPipe.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/kapa2/src/CheckPipe.c	(revision 13391)
@@ -21,4 +21,5 @@
     sock = KapaServerWait (InitSocket, &Address);
     if (sock == -1) return (TRUE);
+    close (InitSocket); /* stop listening on this socket */
   }
 
Index: /branches/kapa-mods-2007-05/Ohana/src/libkapa/src/KapaOpen.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/libkapa/src/KapaOpen.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/libkapa/src/KapaOpen.c	(revision 13391)
@@ -3,5 +3,5 @@
 # define MY_PORT 2500
 # define MY_WAIT 100000
-# define DEBUG 0
+# define DEBUG 1
 
 static int Nvalid = 0;
@@ -30,4 +30,5 @@
   if (status == -1) {
     if (errno == EADDRINUSE) {
+	close (InitSocket);
 	Address[0].sin_port ++;
 	if (Address[0].sin_port > MY_PORT + 10) exit (2);
@@ -194,4 +195,5 @@
     if (DEBUG) fprintf (stderr, "error connecting: %d\n", errno);
     if (errno == ECONNREFUSED) {
+      close (InitSocket);
       Address.sin_port ++;
       if (Address.sin_port > MY_PORT + 10) return (-1);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/cgrid.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/cgrid.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/cgrid.c	(revision 13391)
@@ -17,5 +17,5 @@
   Graphdata graphmode;
 
-  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   if (argc != 1) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/cplot.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/cplot.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/cplot.c	(revision 13391)
@@ -8,5 +8,5 @@
   Graphdata graphmode;
 
-  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   if (argc != 3) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/czplot.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/czplot.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/czplot.c	(revision 13391)
@@ -9,5 +9,5 @@
   Graphdata graphmode;
 
-  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   if (argc != 6) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/gauss.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/gauss.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/gauss.c	(revision 13391)
@@ -6,14 +6,16 @@
   int i, N, Npix, Nborder, Nspot;
   double X, Y, Z, max;
-  int Ximage, Nimage;
+  int kapa;
+  char *name;
   Buffer *buf;
 
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   Nborder = 3;
@@ -37,5 +39,5 @@
   }
   
-  if (Ximage < 1) {
+  if (kapa < 1) {
     gprint (GP_ERR, "no active TV\n");
     return (FALSE);
@@ -50,12 +52,12 @@
   if ((buf = SelectBuffer (GetImageName(), OLDBUFFER, TRUE)) == NULL) return (FALSE);
 
-  KiiCursorOn (Ximage);
+  KiiCursorOn (kapa);
 
   for (i = 0; (i < Nspot) || (Nspot == 0); i++) {
-    KiiCursorRead (Ximage, &X, &Y, key);
+    KiiCursorRead (kapa, &X, &Y, key);
     if (!strcasecmp (key, "Q")) break;
     Z = get_aperture_stats (&buf[0].matrix, (int)(X+0.5), (int)(Y+0.5), Npix, Nborder, max);
   }
-  KiiCursorOff (Ximage);
+  KiiCursorOff (kapa);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/objload.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/objload.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/objload.c	(revision 13391)
@@ -7,15 +7,16 @@
   int i, N, Objtype, type, Nline, status;
   FILE *f;
-  char *buffer, *line;
-  int Ximage, Nimage, Noverlay, NOVERLAY;
+  char *buffer, *line, *name;
+  int kapa, Noverlay, NOVERLAY;
   KiiOverlay *overlay;
   
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   Objtype = 0;
@@ -63,5 +64,5 @@
   free (buffer);
 
-  KiiLoadOverlay (Ximage, overlay, Noverlay, argv[1]);
+  KiiLoadOverlay (kapa, overlay, Noverlay, argv[1]);
 
   free (overlay);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/outline.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/outline.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/outline.c	(revision 13391)
@@ -145,5 +145,5 @@
     /* code to draw dots on Ximage */
     {
-      int Nimage, Ximage;
+      int kapa;
       float xp, yp, x, y;
       float dx, dy, theta, t, dt;
@@ -151,6 +151,5 @@
       KiiOverlay *overlay;
       
-      Nimage = -1;
-      if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+      if (!GetImage (&kapa, NULL)) return (FALSE);
       
       Noverlay = 0;
@@ -179,5 +178,5 @@
 	CHECK_REALLOCATE (overlay, KiiOverlay, NOVERLAY, Noverlay, 1000);
       }
-      KiiLoadOverlay (Ximage, overlay, Noverlay, "red");
+      KiiLoadOverlay (kapa, overlay, Noverlay, "red");
       free (overlay);
     }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/outline2.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/outline2.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/outline2.c	(revision 13391)
@@ -303,5 +303,5 @@
 int plot_outline () {
   
-  int Nimage, Ximage;
+  int kapa;
   float xp, yp, x, y;
   float dx, dy, theta, t, dt;
@@ -309,6 +309,5 @@
   KiiOverlay *overlay;
   
-  Nimage = -1;
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, NULL)) return (FALSE);
   
   Noverlay = 0;
@@ -337,5 +336,5 @@
     CHECK_REALLOCATE (overlay, KiiOverlay, NOVERLAY, Noverlay, 1000);
   }
-  KiiLoadOverlay (Ximage, overlay, Noverlay, "red");
+  KiiLoadOverlay (kapa, overlay, Noverlay, "red");
   free (overlay);
   return (TRUE);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/region.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/region.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.astro/region.c	(revision 13391)
@@ -6,9 +6,16 @@
   double Ra, Dec, Radius;
   double dx, dy;
-  int N, Ngraph, Xgraph;
+  int N, kapa;
+  char *name;
   Graphdata graphmode;
 
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, &Xgraph, &Ngraph)) return (FALSE);
+  name = NULL;
+  if ((N = get_argument (argc, argv, "-n"))) {
+    remove_argument (N, &argc, argv);
+    name = strcreate (argv[N]);
+    remove_argument (N, &argc, argv);
+  }
+  if (!GetGraph (&graphmode, &kapa, name)) return (FALSE);
+  FREE (name);
 
   if ((N = get_argument (argc, argv, "-ew"))) {
@@ -60,6 +67,6 @@
   
   /* ask kapa for coordinate limits, so get the right aspect ratio */
-  KiiSendCommand (Xgraph, 4, "LIMS"); 
-  KiiScanMessage (Xgraph, "%lf %lf", &dx, &dy); 
+  KiiSendCommand (kapa, 4, "LIMS"); 
+  KiiScanMessage (kapa, "%lf %lf", &dx, &dy); 
   dx = fabs (dx);
   dy = fabs (dy); 
@@ -101,10 +108,10 @@
   graphmode.coords.cdelt1 = graphmode.coords.cdelt2 = 1.0;
 
-  KapaClear (Xgraph, TRUE);
-  KapaSetLimits (Xgraph, &graphmode);
+  KapaClear (kapa, TRUE);
+  KapaSetLimits (kapa, &graphmode);
 
   /* drop this? */
   sprintf (string, "%8.4f %8.4f (%f)", Ra, Dec, Radius);
-  KapaSendLabel (Xgraph, string, 2);
+  KapaSendLabel (kapa, string, 2);
 
   SetGraph (graphmode);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/box.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/box.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/box.c	(revision 13391)
@@ -3,14 +3,16 @@
 int box (int argc, char **argv) {
   
-  int i, N, Ngraph, Xgraph;
+  int i, N, kapa;
+  char *name;
   Graphdata graphmode;
   
-  Ngraph = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetGraph (&graphmode, &Xgraph, &Ngraph)) return (FALSE);
+  if (!GetGraph (&graphmode, &kapa, name)) return (FALSE);
+  FREE (name);
 
   strcpy (graphmode.ticks, "2222");
@@ -49,5 +51,5 @@
   if (argc != 1) goto usage;
 
-  KapaBox (Xgraph, &graphmode);
+  KapaBox (kapa, &graphmode);
   return (TRUE);
       
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/center.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/center.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/center.c	(revision 13391)
@@ -5,13 +5,15 @@
   double x, y;
   int zoom;
-  int Ximage, Nimage, N;
+  int kapa, N;
+  char *name;
   
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   if ((argc != 3) && (argc != 4)) {
@@ -25,5 +27,5 @@
   if (argc == 4) zoom = atof (argv[3]);
 
-  KiiCenter (Ximage, x, y, zoom);
+  KiiCenter (kapa, x, y, zoom);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/clear.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/clear.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/clear.c	(revision 13391)
@@ -4,14 +4,17 @@
   
   int N, ClearSection;
-  int Ngraph, Xgraph;
+  int kapa;
+  char *name;
 
-  Ngraph = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetGraph (NULL, &Xgraph, &Ngraph)) return (FALSE);
+  if (!GetGraph (NULL, &kapa, name)) return (FALSE);
+  FREE (name);
 
+  /* XXX need to distinguish between Plot, AllPlots, Image, AllSections */
   ClearSection = FALSE;
   if ((N = get_argument (argc, argv, "-s"))) {
@@ -25,5 +28,5 @@
   }
 
-  KapaClear (Xgraph, ClearSection);
+  KapaClear (kapa, ClearSection);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/close.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/close.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/close.c	(revision 13391)
@@ -3,30 +3,19 @@
 int close_device (int argc, char **argv) {
 
-  int N, Source, Nsource, IsImage;
+  int N, kapa, IsImage;
+  char *name;
   /* close current graphics device */
 
-  Nsource = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nsource = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if ((N = get_argument (argc, argv, "-g"))) {
-    remove_argument (N, &argc, argv);
-    SetImageDevice (FALSE);
-  }  
-  if ((N = get_argument (argc, argv, "-i"))) {
-    remove_argument (N, &argc, argv);
-    SetImageDevice (TRUE);
-  }  
 
-  IsImage = GetCurrentDevice ();
-  if (IsImage) {
-    if (!GetImage (&Source, &Nsource)) return (FALSE);
-    // close_image (Nsource); 
-  } else {
-    if (!GetGraph (NULL, &Source, &Nsource)) return (FALSE);
-    // close_graph (Nsource); 
-  }
+  if (!GetGraph (NULL, &kapa, name)) return (FALSE);
+  FREE (name);
+
+  // close_kapa (name); 
 
   return (TRUE);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/cursor.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/cursor.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/cursor.c	(revision 13391)
@@ -3,6 +3,6 @@
 int cursor (int argc, char **argv) {
 
-  char string[20], key[20];
-  int i, N, Nsource, Source, IsImage;
+  char string[20], key[20], *name;
+  int i, N, kapa, IsImage;
   double X, Y, R, D, Z;
   void *oldsignal;
@@ -10,10 +10,5 @@
   Buffer *buf;
 
-  Nsource = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Nsource = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
+  /* need to be able to specify graph vs image coords
   if ((N = get_argument (argc, argv, "-g"))) {
     remove_argument (N, &argc, argv);
@@ -24,10 +19,14 @@
     SetImageDevice (TRUE);
   }  
-  IsImage = GetCurrentDevice ();
-  if (IsImage) {
-    if (!GetImage (&Source, &Nsource)) return (FALSE);
-  } else {
-    if (!GetGraph (&graphmode, &Source, &Nsource)) return (FALSE);
+  */
+
+  name = NULL;
+  if ((N = get_argument (argc, argv, "-n"))) {
+    remove_argument (N, &argc, argv);
+    name = strcreate (argv[N]);
+    remove_argument (N, &argc, argv);
   }
+  if (!GetGraph (&graphmode, &kapa, name)) return (FALSE);
+  FREE (name);
 
   N = 0;
@@ -42,5 +41,5 @@
   if (IsImage) buf = SelectBuffer (GetImageName(), OLDBUFFER, FALSE);
   
-  KiiCursorOn (Source);
+  KiiCursorOn (kapa);
   
   oldsignal = signal (SIGINT, handle_interrupt);
@@ -48,5 +47,5 @@
   Z = -1.0;
   for (i = 0; ((i < N) || (N == 0)) && !interrupt; i++) {
-    KiiCursorRead (Source, &X, &Y, key);
+    KiiCursorRead (kapa, &X, &Y, key);
 
     sprintf (string, "X%s", key);
@@ -73,5 +72,5 @@
 
   signal (SIGINT, oldsignal);
-  KiiCursorOff (Source);
+  KiiCursorOff (kapa);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/device.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/device.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/device.c	(revision 13391)
@@ -3,30 +3,25 @@
 int device (int argc, char **argv) {
 
-  int N, Source, Nsource, IsImage;
+  int N, kapa, IsImage;
+  char *name;;
   /* set / get current graphics device */
 
-  Nsource = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nsource = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if ((N = get_argument (argc, argv, "-g"))) {
-    remove_argument (N, &argc, argv);
-    SetImageDevice (FALSE);
-  }  
-  if ((N = get_argument (argc, argv, "-i"))) {
-    remove_argument (N, &argc, argv);
-    SetImageDevice (TRUE);
-  }  
 
-  IsImage = GetCurrentDevice ();
-  if (IsImage) {
-    if (!GetImage (&Source, &Nsource)) return (FALSE);
-    gprint (GP_ERR, "kii %d\n", Nsource); 
+  if (name == NULL) {
+    name = GetGraphName ();
+    if (name == NULL) {
+      gprint (GP_ERR, "no device defined\n");
+      return (NULL);
+    }
   } else {
-    if (!GetGraph (NULL, &Source, &Nsource)) return (FALSE);
-    gprint (GP_ERR, "kapa %d\n", Nsource); 
+    if (!GetGraph (NULL, &kapa, name)) return (FALSE);
   }
+  gprint (GP_ERR, "kapa %s\n", name); 
 
   return (TRUE);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/dot.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/dot.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/dot.c	(revision 13391)
@@ -6,5 +6,5 @@
   float x, y;
 
-  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   if (argc != 3) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/erase.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/erase.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/erase.c	(revision 13391)
@@ -4,13 +4,15 @@
   
   int i, N;
-  int Ximage, Nimage;
+  int kapa;
+  char *name;
   
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   if (argc < 2) {
@@ -22,8 +24,8 @@
   for (i = 1; i < argc; i++) {
     if (!(strcasecmp (argv[i], "all"))) {
-      KiiEraseOverlay (Ximage, "red");
-      KiiEraseOverlay (Ximage, "green");
-      KiiEraseOverlay (Ximage, "blue");
-      KiiEraseOverlay (Ximage, "yellow");
+      KiiEraseOverlay (kapa, "red");
+      KiiEraseOverlay (kapa, "green");
+      KiiEraseOverlay (kapa, "blue");
+      KiiEraseOverlay (kapa, "yellow");
       continue;
     }
@@ -32,5 +34,5 @@
       return (FALSE);
     }
-    KiiEraseOverlay (Ximage, argv[i]);
+    KiiEraseOverlay (kapa, argv[i]);
   }
   return (TRUE);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/grid.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/grid.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/grid.c	(revision 13391)
@@ -7,13 +7,6 @@
   double range, lrange, factor, mantis, fmantis, power, major, minor, first, next;
   Graphdata graphmode;
-  int Ngraph;
-
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+
+  if (!style_args (&graphmode, &argc, argv, NULL)) return (FALSE);
 
   MajorTick = TRUE;
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/init.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/init.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/init.c	(revision 13391)
@@ -235,6 +235,5 @@
   int i;
 
-  InitGraph ();
-  InitImage ();
+  InitKapa ();
   InitQueues ();
 
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/jpeg.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/jpeg.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/jpeg.c	(revision 13391)
@@ -4,5 +4,6 @@
 
   char filename[1024];
-  int N, Source, Nsource, IsImage, IsPNG;
+  int N, kapa, IsImage, IsPNG, IsPPM;
+  char *name;
   
   if ((N = get_argument (argc, argv, "--help"))) {
@@ -12,8 +13,12 @@
 
   /* image type */
-  IsPNG = TRUE;
+  IsPPM = IsPNG = FALSE;
   if ((N = get_argument (argc, argv, "-ppm"))) {
     remove_argument (N, &argc, argv);
-    IsPNG = FALSE;
+    IsPPM = TRUE;
+  }
+  if ((N = get_argument (argc, argv, "-png"))) {
+    remove_argument (N, &argc, argv);
+    IsPNG = TRUE;
   }
 
@@ -27,10 +32,11 @@
 
   /* display source */
-  Nsource = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nsource = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
+  /* need to figure out what this implies
   if ((N = get_argument (argc, argv, "-g"))) {
     remove_argument (N, &argc, argv);
@@ -41,17 +47,18 @@
     SetImageDevice (TRUE);
   }  
-  IsImage = GetCurrentDevice ();
-  if (IsImage) {
-    if (!GetImage (&Source, &Nsource)) return (FALSE);
-    if (!filename[0]) strcpy (filename, "Ximage.jpg");
-    KiiJPEG (Source, filename);
-  } else {
-    if (!GetGraph (NULL, &Source, &Nsource)) return (FALSE);
-    if (!filename[0]) strcpy (filename, "Xgraph.png");
-    if (IsPNG) {
-      KapaPNG (Source, filename);
-    } else {
-      KapaPPM (Source, filename);
-    }
+  */
+
+  if (!GetGraph (NULL, &kapa, name)) return (FALSE);
+  if (!IsPNG && !IsPPM) {
+    if (!filename[0]) strcpy (filename, "kapa.png");
+    KiiJPEG (kapa, filename);
+  }
+  if (IsPNG) {
+    if (!filename[0]) strcpy (filename, "kapa.png");
+    KapaPNG (kapa, filename);
+  } 
+  if (IsPPM) {
+    if (!filename[0]) strcpy (filename, "kapa.ppm");
+    KapaPPM (kapa, filename);
   }
   return (TRUE);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/labels.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/labels.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/labels.c	(revision 13391)
@@ -4,7 +4,7 @@
   
   char name[64];
-  int N, size, Xgraph;
+  int N, size, kapa;
 
-  if (!GetGraph (NULL, &Xgraph, NULL)) return (FALSE);
+  if (!GetGraph (NULL, &kapa, NULL)) return (FALSE);
 
   if (get_argument (argc, argv, "-h")) {
@@ -36,10 +36,10 @@
     size = atof (argv[N]);
     remove_argument (N, &argc, argv);
-    KapaSetFont (Xgraph, name, size);
+    KapaSetFont (kapa, name, size);
   } 
 
   if ((N = get_argument (argc, argv, "-x"))) {
     remove_argument (N, &argc, argv);
-    KapaSendLabel (Xgraph, argv[N], 0);
+    KapaSendLabel (kapa, argv[N], 0);
     remove_argument (N, &argc, argv);
   }
@@ -47,5 +47,5 @@
   if ((N = get_argument (argc, argv, "-y"))) {
     remove_argument (N, &argc, argv);
-    KapaSendLabel (Xgraph, argv[N], 1);
+    KapaSendLabel (kapa, argv[N], 1);
     remove_argument (N, &argc, argv);
   }
@@ -53,5 +53,5 @@
   if ((N = get_argument (argc, argv, "+x"))) {
     remove_argument (N, &argc, argv);
-    KapaSendLabel (Xgraph, argv[N], 2);
+    KapaSendLabel (kapa, argv[N], 2);
     remove_argument (N, &argc, argv);
   }
@@ -59,5 +59,5 @@
   if ((N = get_argument (argc, argv, "+y"))) {
     remove_argument (N, &argc, argv);
-    KapaSendLabel (Xgraph, argv[N], 3);
+    KapaSendLabel (kapa, argv[N], 3);
     remove_argument (N, &argc, argv);
   }
@@ -65,5 +65,5 @@
   if ((N = get_argument (argc, argv, "-ul"))) {
     remove_argument (N, &argc, argv);
-    KapaSendLabel (Xgraph, argv[N], 4);
+    KapaSendLabel (kapa, argv[N], 4);
     remove_argument (N, &argc, argv);
   }
@@ -71,5 +71,5 @@
   if ((N = get_argument (argc, argv, "-ur"))) {
     remove_argument (N, &argc, argv);
-    KapaSendLabel (Xgraph, argv[N], 5);
+    KapaSendLabel (kapa, argv[N], 5);
     remove_argument (N, &argc, argv);
   }
@@ -77,5 +77,5 @@
   if ((N = get_argument (argc, argv, "-ll"))) {
     remove_argument (N, &argc, argv);
-    KapaSendLabel (Xgraph, argv[N], 6);
+    KapaSendLabel (kapa, argv[N], 6);
     remove_argument (N, &argc, argv);
   }
@@ -83,5 +83,5 @@
   if ((N = get_argument (argc, argv, "-lr"))) {
     remove_argument (N, &argc, argv);
-    KapaSendLabel (Xgraph, argv[N], 7);
+    KapaSendLabel (kapa, argv[N], 7);
     remove_argument (N, &argc, argv);
   }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/limits.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/limits.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/limits.c	(revision 13391)
@@ -4,5 +4,6 @@
 
   int N, APPLY;
-  int Ngraph, Xgraph;
+  int kapa;
+  char *name;
   Graphdata graphmode;
   Vector *xvec, *yvec;
@@ -15,15 +16,15 @@
     APPLY = TRUE;
   }
-
-  Ngraph = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetGraph (&graphmode, &Xgraph, &Ngraph)) return (FALSE);
+  if (!GetGraph (&graphmode, &kapa, name)) return (FALSE);
+  FREE (name);
 
   if (argc == 1) {
-    gprint (GP_ERR, "limits: %f %f %f %f [-a] [-n Xgraph]\n",
+    gprint (GP_ERR, "limits: %f %f %f %f [-a] [-n device]\n",
 	     graphmode.xmin, graphmode.xmax,
 	     graphmode.ymin, graphmode.ymax);
@@ -71,5 +72,5 @@
  success:
   SetLimits (xvec, yvec, &graphmode);
-  if (APPLY) KapaSetLimits (Xgraph, &graphmode);
+  if (APPLY) KapaSetLimits (kapa, &graphmode);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/line.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/line.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/line.c	(revision 13391)
@@ -6,5 +6,5 @@
   float x[2], y[2];
 
-  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   if (argc != 6) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/load.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/load.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/load.c	(revision 13391)
@@ -4,21 +4,22 @@
   
   int i, N, n, ISCEL;
-  int Ximage, Nimage, Noverlay, NOVERLAY;
+  int kapa, Noverlay, NOVERLAY;
   char *c, type[10], string[128], line[1024];
   double x, y, dx, dy, x1, y1;
   double dra, ddec, ra1, dec1, ra, dec;
   FILE *f;
-  char *buffer;
+  char *buffer, *name;
   Coords coords;
   Buffer *buf;
   KiiOverlay *overlay;
   
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   ISCEL = FALSE;
@@ -125,5 +126,5 @@
   }
 
-  KiiLoadOverlay (Ximage, overlay, Noverlay, argv[1]);
+  KiiLoadOverlay (kapa, overlay, Noverlay, argv[1]);
 
   for (i = 0; i < Noverlay; i++) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/plot.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/plot.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/plot.c	(revision 13391)
@@ -7,5 +7,5 @@
   Vector *xvec, *yvec, *dxmvec, *dxpvec, *dymvec, *dypvec;
 
-  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   /* decide on error bars */
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/point.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/point.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/point.c	(revision 13391)
@@ -4,19 +4,21 @@
   
   int N, celestial, pixscale;
-  int Ximage, Nimage;
+  int kapa;
   double ra, dec, dra, ddec;
   double x1, y1, ra1, dec1;
+  char *name;
   Coords coords;
   Buffer *buf;
   KiiOverlay overlay;
 
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
-  
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
+
   celestial = FALSE;
   if ((N = get_argument (argc, argv, "-c"))) {
@@ -66,5 +68,5 @@
   }
   overlay.type = KiiOverlayTypeByName (argv[2]);
-  KiiLoadOverlay (Ximage, &overlay, 1, argv[1]);
+  KiiLoadOverlay (kapa, &overlay, 1, argv[1]);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/ps.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/ps.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/ps.c	(revision 13391)
@@ -3,6 +3,6 @@
 int ps (int argc, char **argv) {
 
-  char filename[1024], pagename[1024];
-  int N, Source, Nsource, scaleMode, pageMode, IsImage;
+  char filename[1024], pagename[1024], *name;
+  int N, kapa, scaleMode, pageMode, IsImage;
   
   if ((N = get_argument (argc, argv, "--help"))) goto help;
@@ -44,35 +44,22 @@
 
   /* which tool */
-  Nsource = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nsource = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  /* which device */
-  if ((N = get_argument (argc, argv, "-g"))) {
-    remove_argument (N, &argc, argv);
-    SetImageDevice (FALSE);
-  }  
-  if ((N = get_argument (argc, argv, "-i"))) {
-    remove_argument (N, &argc, argv);
-    SetImageDevice (TRUE);
-  }  
-  
+
   if ((argc > 1) && filename[0]) goto help;
 
   if (argc > 1) strcpy (filename, argv[1]);
 
-  IsImage = GetCurrentDevice ();
-  if (IsImage) {
-    if (!GetImage (&Source, &Nsource)) return (FALSE);
-    if (!filename[0]) strcpy (filename, "Ximage.ps");
-  } else {
-    if (!GetGraph (NULL, &Source, &Nsource)) return (FALSE);
-    if (!filename[0]) strcpy (filename, "Xgraph.ps");
-  }
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
+
+  if (!filename[0]) strcpy (filename, "kapa.ps");
   
   /* tell Ximage/Xgraph to ps the image */
-  KiiPS (Source, filename, scaleMode, pageMode, pagename);
+  KiiPS (kapa, filename, scaleMode, pageMode, pagename);
   return (TRUE);
 
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/rd.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/rd.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/rd.c	(revision 13391)
@@ -59,5 +59,8 @@
 
   /* find matrix, free old data */
-  if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) return (FALSE);
+  if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) {
+      fclose (f);
+      return (FALSE);
+  }
   gfits_free_matrix (&buf[0].matrix);
   gfits_free_header (&buf[0].header);
@@ -79,4 +82,5 @@
       gprint (GP_ERR, "entry in %s not found\n", argv[2]);
       DeleteBuffer (buf);
+      fclose (f);
       return (FALSE);
     }
@@ -99,4 +103,5 @@
 	DeleteBuffer (buf);
 	free (CCDKeyword);
+	fclose (f);
 	return (FALSE);
       }
@@ -105,4 +110,5 @@
 	DeleteBuffer (buf);
 	free (CCDKeyword);
+	fclose (f);
 	return (FALSE);
       }
@@ -143,4 +149,5 @@
     buf[0].header.bzero = 0;
     buf[0].header.bscale = 1;
+    fclose (f);
     return (TRUE);
   }
@@ -152,4 +159,5 @@
     gprint (GP_ERR, "-plane is too large: %d total planes\n", Nplane);
     DeleteBuffer (buf);
+    fclose (f);
     return (FALSE);
   }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/resize.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/resize.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/resize.c	(revision 13391)
@@ -5,27 +5,16 @@
   char *end;
   double NX, NY;
-  int N, Source, Nsource, IsImage;
+  int N, kapa;
+  char *name;
   
   /* display source */
-  Nsource = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nsource = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if ((N = get_argument (argc, argv, "-g"))) {
-    remove_argument (N, &argc, argv);
-    SetImageDevice (FALSE);
-  }  
-  if ((N = get_argument (argc, argv, "-i"))) {
-    remove_argument (N, &argc, argv);
-    SetImageDevice (TRUE);
-  }  
-  IsImage = GetCurrentDevice ();
-  if (IsImage) {
-    if (!GetImage (&Source, &Nsource)) return (FALSE);
-  } else {
-    if (!GetGraph (NULL, &Source, &Nsource)) return (FALSE);
-  }
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   if (argc != 3) {
@@ -49,5 +38,5 @@
   if (!strcmp (end, "cm")) { NY *= 38; }
 
-  KiiResize (Source, NX, NY);
+  KiiResize (kapa, NX, NY);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/save.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/save.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/save.c	(revision 13391)
@@ -4,13 +4,15 @@
   
   int N, celestial;
-  int Ximage, Nimage;
+  int kapa;
+  char *name;
   
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   celestial = FALSE;
@@ -26,5 +28,5 @@
   }
 
-  KiiSaveOverlay (Ximage, celestial, argv[1], argv[2]);
+  KiiSaveOverlay (kapa, celestial, argv[1], argv[2]);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/section.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/section.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/section.c	(revision 13391)
@@ -4,5 +4,6 @@
   
   int N, List;
-  int Ngraph, Xgraph;
+  int kapa;
+  char *name;
   Graphdata graphmode;
   KapaSection section;
@@ -14,15 +15,16 @@
   }
 
-  Ngraph = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetGraph (&graphmode, &Xgraph, &Ngraph)) return (FALSE);
+  if (!GetGraph (&graphmode, &kapa, name)) return (FALSE);
+  FREE (name);
 
   /* list sections */
   if (argc == 1) {
-    KapaGetSection (Xgraph, "*");
+    KapaGetSection (kapa, "*");
     gprint (GP_ERR, "USAGE: section name [x y dx dy]\n");
     return (TRUE);
@@ -32,7 +34,7 @@
     /* select / show section */
     if (List) {
-      KapaGetSection (Xgraph, argv[1]);
+      KapaGetSection (kapa, argv[1]);
     } else {
-      KapaSelectSection (Xgraph, argv[1]);
+      KapaSelectSection (kapa, argv[1]);
     }
     return (TRUE);
@@ -46,5 +48,5 @@
     section.dx = atof (argv[4]);
     section.dy = atof (argv[5]);
-    KapaSetSection (Xgraph, &section);
+    KapaSetSection (kapa, &section);
     return (TRUE);
   }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/style.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/style.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/style.c	(revision 13391)
@@ -5,5 +5,5 @@
   Graphdata graphmode;
 
-  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   if (argc > 1) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/textline.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/textline.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/textline.c	(revision 13391)
@@ -6,14 +6,8 @@
   char name[64];
   double x, y, angle;
-  int Ngraph, Xgraph;
+  int kapa;
   Graphdata graphmode;
 
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, &Xgraph, &Ngraph)) return (FALSE);
+  if (!style_args (&graphmode, &argc, argv, &kapa)) return (FALSE);
 
   if ((N = get_argument (argc, argv, "-fn"))) {
@@ -23,5 +17,5 @@
     size = atof (argv[N]);
     remove_argument (N, &argc, argv);
-    KapaSetFont (Xgraph, name, size);
+    KapaSetFont (kapa, name, size);
   } 
 
@@ -58,5 +52,5 @@
   }    
 
-  KapaSendTextline (Xgraph, argv[3], x, y, angle);
+  KapaSendTextline (kapa, argv[3], x, y, angle);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/tv.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/tv.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/tv.c	(revision 13391)
@@ -3,5 +3,6 @@
 int tv (int argc, char **argv) {
   
-  int N, Ximage, Nimage;
+  int N, kapa;
+  char *name;
   Coords coords;
   Buffer *buf;
@@ -9,16 +10,16 @@
   KiiDisplayMode mode;
 
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   /* shell exits on pipe close, FIX */
   if ((N = get_argument (argc, argv, "-kill"))) {
-    KiiClose (Ximage);
-    Ximage = 0;
+    KiiClose (kapa);
     return (TRUE);
   }
@@ -52,5 +53,5 @@
   image.name = buf[0].name;
 
-  KiiNewPicture1D (Ximage, &image, &mode, &coords);
+  KiiNewPicture1D (kapa, &image, &mode, &coords);
 
   SetImageName (argv[1]);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/tvcontour.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/tvcontour.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/tvcontour.c	(revision 13391)
@@ -58,15 +58,17 @@
   float *v00, *v01, *v10, *v11;
   float *Vout, *Vin, *matrix;
-  int Ximage, Nimage, N, Noverlay, NOVERLAY;
+  char *name;
+  int kapa, N, Noverlay, NOVERLAY;
   Buffer *buf;
   KiiOverlay *overlay;
   
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   if ((argc != 4) && (argc != 5)) {
@@ -277,5 +279,5 @@
   }
   
-  KiiLoadOverlay (Ximage, overlay, Noverlay, argv[2]);
+  KiiLoadOverlay (kapa, overlay, Noverlay, argv[2]);
   free (overlay);
 
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/tvgrid.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/tvgrid.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/tvgrid.c	(revision 13391)
@@ -11,16 +11,18 @@
   char format[16];
   Coords coords;
-  int Ximage, Nimage, N, Noverlay, NOVERLAY;
+  int kapa, N, Noverlay, NOVERLAY;
+  char *name;
   Buffer *buf;
   KiiOverlay *overlay;
 
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
-  
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
+
   if (argc != 3) {
     gprint (GP_ERR, "USAGE: tvgrid (overlay) (buffer)\n");
@@ -151,11 +153,11 @@
     sprintf (label, format, ra);
     sprintf (buffer, "%15s %20.10f %20.10f %20.10f %20.10f ", "TEXT", x0, y0, (double)(strlen(label) + 1), 0.0);
-    write (Ximage, buffer, 128);
-    write (Ximage, label, strlen(label) + 1);
+    write (kapa, buffer, 128);
+    write (kapa, label, strlen(label) + 1);
     RD_to_XY (&x0, &y0, ra, MIN(dec0, dec1), &coords);
     for (dec = MIN(dec0, dec1) + dDEC; dec < MAX(dec0,dec1); dec += dDEC) {
       RD_to_XY (&x1, &y1, ra, dec, &coords);
       sprintf (buffer, "%15s %20.10f %20.10f %20.10f %20.10f ", "LINE", x0, y0, (x1 - x0), (y1 - y0));
-      write (Ximage, buffer, 128);
+      write (kapa, buffer, 128);
       x0 = x1;
       y0 = y1;
@@ -164,5 +166,5 @@
   # endif
 
-  KiiLoadOverlay (Ximage, overlay, Noverlay, argv[1]);
+  KiiLoadOverlay (kapa, overlay, Noverlay, argv[1]);
   free (overlay);
 
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/vload.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/vload.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/vload.c	(revision 13391)
@@ -4,16 +4,18 @@
   
   int i, N, Noverlay;
-  int Ximage, Nimage, type;
+  int kapa, type;
+  char *name;
   double dx, dy, size;
   KiiOverlay *overlay;
   Vector *vecx, *vecy;
   
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   type = KII_OVERLAY_BOX;
@@ -65,5 +67,5 @@
   }
 
-  KiiLoadOverlay (Ximage, overlay, Noverlay, argv[1]);
+  KiiLoadOverlay (kapa, overlay, Noverlay, argv[1]);
   free (overlay);
   return (TRUE);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/zplot.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/zplot.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/cmd.data/zplot.c	(revision 13391)
@@ -3,5 +3,5 @@
 int zplot (int argc, char **argv) {
   
-  int i, N, Npts, Ngraph;
+  int i, N, Npts;
   float *in, *out;
   double min, range;
@@ -9,11 +9,5 @@
   Vector *xvec, *yvec, *zvec, Zvec;
 
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!style_args (&graphmode, &argc, argv, NULL)) return (FALSE);
 
   if (argc != 6) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/ImageSelection.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/ImageSelection.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/ImageSelection.c	(revision 13391)
@@ -20,6 +20,6 @@
   
   if (RegionSelect) {
-    Ngraph = 0;
-    if (!GetGraphData (&graphsky, NULL, &Ngraph)) {
+    // how does this know which sky plot to use?
+    if (!GetGraphData (&graphsky, NULL, NULL)) {
       gprint (GP_ERR, "region display not available\n");
       return (FALSE);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/catalog.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/catalog.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/catalog.c	(revision 13391)
@@ -28,6 +28,5 @@
   int Ngraph;
 
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraph (&graphmode, NULL, NULL)) return (FALSE);
 
   VarConfig ("GSCDIR", "%s", gscdir);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/cmpload.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/cmpload.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/cmpload.c	(revision 13391)
@@ -8,19 +8,20 @@
   int i, Noverlay, NOVERLAY, Nstar, N, Nin, Nextra, Objtype, type;
   int doneread, done, Nskip, Nbytes, nbytes, Ninstar;
-  char *c, *c2;
+  char *c, *c2, name;
   double dtmp;
   FILE *f;
   char *buffer;
-  int Ximage, Nimage;
+  int kapa;
   Header header;
   KiiOverlay *overlay;
   
-  Nimage = -1;
+  name = NULL;
   if ((N = get_argument (argc, argv, "-n"))) {
     remove_argument (N, &argc, argv);
-    Nimage = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, &argc, argv);
   }
-  if (!GetImage (&Ximage, &Nimage)) return (FALSE);
+  if (!GetImage (&kapa, name)) return (FALSE);
+  FREE (name);
 
   Objtype = 0;
@@ -131,5 +132,5 @@
   fclose (f);
 
-  KiiLoadOverlay (Ximage, overlay, Noverlay, argv[1]);
+  KiiLoadOverlay (kapa, overlay, Noverlay, argv[1]);
   free (overlay);
 
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dmt.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dmt.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dmt.c	(revision 13391)
@@ -4,5 +4,5 @@
 int dmt (int argc, char **argv) {
   
-  int i, m, k, N, Ngraph, SaveVectors;
+  int i, m, k, N, SaveVectors;
   int Nsec, Nsecfilt, NPTS;
   double Radius;
@@ -38,6 +38,7 @@
   }
 
-  Ngraph = 0;
-  if (!GetGraphData (&graphsky, NULL, &Ngraph)) return (FALSE);
+  // XXX this needs to be fixed: how to access different graphs at once?
+  gprint (GP_ERR, "ERROR: this function is currently disabled\n");
+  if (!GetGraphData (&graphsky, NULL, NULL)) return (FALSE);
   if (!GetGraph (&graphmode, NULL, NULL)) return (FALSE);
 
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/extract.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/extract.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/extract.c	(revision 13391)
@@ -31,6 +31,5 @@
   RegionFile *regions;
 
-  Ngraph = 0;
-  if (!GetGraphData (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraphData (&graphmode, NULL, NULL)) return (FALSE);
   if (!InitPhotcodes ()) return (FALSE);
 
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/fitcolors.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/fitcolors.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/fitcolors.c	(revision 13391)
@@ -20,5 +20,5 @@
   float *out, *colorFit, *deltaFit, dColor, C0, C1;
   float minDelta, maxDelta, minColor, maxColor;
-  int fd, Npx, Npy, NPX, NPY, Nplot, PLOT;
+  int kapa, Npx, Npy, NPX, NPY, Nplot, PLOT;
   Graphdata graphdata;
   KapaSection section;
@@ -86,5 +86,5 @@
 
   if (PLOT) {
-    if (!GetGraph (&graphdata, &fd, NULL)) return (FALSE);
+    if (!GetGraph (&graphdata, &kapa, NULL)) return (FALSE);
     Nplot = 0;
     Npx = Npy = 0;
@@ -95,6 +95,6 @@
     graphdata.style = 2;
     graphdata.ptype = 2;
-    KapaClear (fd, TRUE);
-    KapaSetFont (fd, "helvetica", 14);
+    KapaClear (kapa, TRUE);
+    KapaSetFont (kapa, "helvetica", 14);
 
     ALLOCATE (colorFit, float, 11);
@@ -301,10 +301,10 @@
 	  strcpy (graphdata.labels, "1100");
 	}
-	KapaSetSection (fd, &section);
-	KapaSetLimits (fd, &graphdata);
-	KapaBox (fd, &graphdata);
-	KapaPrepPlot (fd, Npts, &graphdata);
-	KapaPlotVector (fd, Npts, xvec[0].elements);
-	KapaPlotVector (fd, Npts, yvec[0].elements);
+	KapaSetSection (kapa, &section);
+	KapaSetLimits (kapa, &graphdata);
+	KapaBox (kapa, &graphdata);
+	KapaPrepPlot (kapa, Npts, &graphdata);
+	KapaPlotVector (kapa, Npts, xvec[0].elements);
+	KapaPlotVector (kapa, Npts, yvec[0].elements);
 
 	for (i = 0; i < 11; i++) {
@@ -313,14 +313,14 @@
 	graphdata.style = 0;
 	graphdata.color = KapaColorByName ("red");
-	KapaPrepPlot (fd, 11, &graphdata);
-	KapaPlotVector (fd, 11, colorFit);
-	KapaPlotVector (fd, 11, deltaFit);
-
-	KapaSetFont (fd, "helvetica", 8);
+	KapaPrepPlot (kapa, 11, &graphdata);
+	KapaPlotVector (kapa, 11, colorFit);
+	KapaPlotVector (kapa, 11, deltaFit);
+
+	KapaSetFont (kapa, "helvetica", 8);
 	sprintf (label, "%s", code[0][0].name);
-	KapaSendTextline (fd, label, 0.2*maxColor + 0.8*minColor, 0.8*maxDelta + 0.2*minDelta, 0.0);
+	KapaSendTextline (kapa, label, 0.2*maxColor + 0.8*minColor, 0.8*maxDelta + 0.2*minDelta, 0.0);
 	sprintf (label, "%s", code[1][0].name);
-	KapaSendTextline (fd, label, 0.2*maxColor + 0.8*minColor, 0.2*maxDelta + 0.8*minDelta, 0.0);
-	KapaSetFont (fd, "helvetica", 14);
+	KapaSendTextline (kapa, label, 0.2*maxColor + 0.8*minColor, 0.2*maxDelta + 0.8*minDelta, 0.0);
+	KapaSetFont (kapa, "helvetica", 14);
 
 	graphdata.style = 2;
@@ -336,6 +336,6 @@
 	    Npy = 0;
 	    sprintf (filename, "%s.%02d.png", plotname, Nplot);
-	    KapaPNG (fd, filename);
-	    KapaClear (fd, TRUE);
+	    KapaPNG (kapa, filename);
+	    KapaClear (kapa, TRUE);
 	    Nplot++;
 	  }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/fitsed.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/fitsed.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/fitsed.c	(revision 13391)
@@ -32,5 +32,5 @@
   float color;
   double X, Y;
-  int fd, PLOT;
+  int kapa, PLOT;
   int Nrow, NROW, idx, Nfilter, start, row;
   unsigned short colorP, colorM, code, USNOred, USNOblu;
@@ -157,9 +157,9 @@
 
   if (PLOT) {
-    if (!GetGraph (&graphdata, &fd, NULL)) return (FALSE);
+    if (!GetGraph (&graphdata, &kapa, NULL)) return (FALSE);
     SetLimitsRaw (wavecode, NULL, Nfilter, &graphdata);
     graphdata.style = 2;
     graphdata.ptype = 2;
-    KapaClear (fd, TRUE);
+    KapaClear (kapa, TRUE);
     magSection.name = strcreate ("mag");
     magSection.x  = 0;
@@ -173,5 +173,5 @@
     resSection.dy = 0.5;
     
-    KapaSetFont (fd, "helvetica", 14);
+    KapaSetFont (kapa, "helvetica", 14);
     ALLOCATE (fitmags, float, Nfilter);
     ALLOCATE (fiterrs, float, Nfilter);
@@ -261,13 +261,13 @@
 	SWAP (graphdata.ymin, graphdata.ymax);
 
-	KapaClear (fd, TRUE);
-	KapaSetSection (fd, &magSection);
-    	KapaSetLimits (fd, &graphdata);
-	KapaBox (fd, &graphdata);
+	KapaClear (kapa, TRUE);
+	KapaSetSection (kapa, &magSection);
+    	KapaSetLimits (kapa, &graphdata);
+	KapaBox (kapa, &graphdata);
 	graphdata.color = KapaColorByName ("blue");
 	graphdata.etype = 0;
-	KapaPrepPlot (fd, Nfilter, &graphdata);
-	KapaPlotVector (fd, Nfilter, wavecode);
-	KapaPlotVector (fd, Nfilter, SEDtable[minFit.row][0].mags);
+	KapaPrepPlot (kapa, Nfilter, &graphdata);
+	KapaPlotVector (kapa, Nfilter, wavecode);
+	KapaPlotVector (kapa, Nfilter, SEDtable[minFit.row][0].mags);
 	graphdata.color = KapaColorByName ("red");
 	graphdata.etype = 1;
@@ -279,22 +279,22 @@
 	  fiterrs[j] = sourceError.mags[j];
 	}
-	KapaPrepPlot (fd, Nfilter, &graphdata);
-	KapaPlotVector (fd, Nfilter, wavecode);
-	KapaPlotVector (fd, Nfilter, fitmags);
-	KapaPlotVector (fd, Nfilter, fiterrs);
-	KapaPlotVector (fd, Nfilter, fiterrs);
-	KapaSendLabel (fd, "model,fit (mags)", 1);
+	KapaPrepPlot (kapa, Nfilter, &graphdata);
+	KapaPlotVector (kapa, Nfilter, wavecode);
+	KapaPlotVector (kapa, Nfilter, fitmags);
+	KapaPlotVector (kapa, Nfilter, fiterrs);
+	KapaPlotVector (kapa, Nfilter, fiterrs);
+	KapaSendLabel (kapa, "model,fit (mags)", 1);
 
 	sprintf (line, "star: %10.6f %10.6f  T: %5.0fK  A_V|: %4.2f  M_D|: %5.2f  &sc&h^2|: %5.2f", 
 		 catalog.average[i].R, catalog.average[i].D, 
 		 SEDtable[minFit.row][0].Temp, SEDtable[minFit.row][0].Av, minFit.Md, minFit.chisq);
-	KapaSendLabel (fd, line, 2);
-	KapaSendLabel (fd, "model,fit (mags)", 1);
-
-	KapaSetSection (fd, &resSection);
+	KapaSendLabel (kapa, line, 2);
+	KapaSendLabel (kapa, "model,fit (mags)", 1);
+
+	KapaSetSection (kapa, &resSection);
 	graphdata.ymin = -1.0;
 	graphdata.ymax = +1.0;
-    	KapaSetLimits (fd, &graphdata);
-	KapaBox (fd, &graphdata);
+    	KapaSetLimits (kapa, &graphdata);
+	KapaBox (kapa, &graphdata);
 	graphdata.color = KapaColorByName ("red");
 	graphdata.etype = 1;
@@ -307,21 +307,21 @@
 	  fiterrs[j] = sourceError.mags[j];
 	}
-	KapaPrepPlot (fd, Nfilter, &graphdata);
-	KapaPlotVector (fd, Nfilter, wavecode);
-	KapaPlotVector (fd, Nfilter, fitmags);
-	KapaPlotVector (fd, Nfilter, fiterrs);
-	KapaPlotVector (fd, Nfilter, fiterrs);
-	KapaSendLabel (fd, "wavelength (nm)", 0);
-	KapaSendLabel (fd, "resid (mags)", 1);
-
-	KiiCursorOn (fd);
-	while (KiiCursorRead (fd, &X, &Y, key)) {
+	KapaPrepPlot (kapa, Nfilter, &graphdata);
+	KapaPlotVector (kapa, Nfilter, wavecode);
+	KapaPlotVector (kapa, Nfilter, fitmags);
+	KapaPlotVector (kapa, Nfilter, fiterrs);
+	KapaPlotVector (kapa, Nfilter, fiterrs);
+	KapaSendLabel (kapa, "wavelength (nm)", 0);
+	KapaSendLabel (kapa, "resid (mags)", 1);
+
+	KiiCursorOn (kapa);
+	while (KiiCursorRead (kapa, &X, &Y, key)) {
 	  gprint (GP_ERR, "window: %f %f (%s)\n", X, Y, key);
 	  if (!strcasecmp (key, "Q")) {
-	    KiiCursorOff (fd);
+	    KiiCursorOff (kapa);
 	    break;
 	  }
 	  if (!strcasecmp (key, "ESCAPE")) {
-	    KiiCursorOff (fd);
+	    KiiCursorOff (kapa);
 	    goto escape;
 	  }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/images.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/images.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/images.c	(revision 13391)
@@ -22,5 +22,5 @@
   int typehash;
 
-  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   WITH_MOSAIC = FALSE;
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imbox.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imbox.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imbox.c	(revision 13391)
@@ -12,5 +12,5 @@
   FILE *f;
 
-  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   if (argc != 2) {
@@ -18,5 +18,4 @@
     return (FALSE);
   }
-  SetGraph (graphmode);
 
   f = fopen (argv[1], "r");
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imdense.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imdense.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imdense.c	(revision 13391)
@@ -5,9 +5,11 @@
   
   long A, B;
-  int i, N, Nimage, status, NPTS, Ngraph;
+  int i, N, Nimage, status, NPTS;
   double r, d, x, y, Rmin, Rmax;
   Vector Xvec, Yvec;
   Image *image;
   Graphdata graphmode;
+
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   /* need options to list only images in region and only images in a time range */
@@ -17,6 +19,4 @@
     return (FALSE);
   }
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
 
   if ((image = LoadImages (&Nimage)) == NULL) return (FALSE);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imextract.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imextract.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imextract.c	(revision 13391)
@@ -5,5 +5,5 @@
 int imextract (int argc, char **argv) {
   
-  int i, j, Nimage, mode, N, Ngraph, PhotcodeSelect;
+  int i, j, Nimage, mode, N, PhotcodeSelect;
   int TimeSelect, RegionSelect, *subset, Nsubset, TimeFormat, FlagSelect, FlagValue;
   double x, y, ra, dec, t, trange;
@@ -15,6 +15,5 @@
   Vector *vec;
 
-  Ngraph = 0;
-  if (!GetGraphData (&graphsky, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraphData (&graphsky, NULL, NULL)) return (FALSE);
   if (!InitPhotcodes ()) return (FALSE);
 
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imlist.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imlist.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imlist.c	(revision 13391)
@@ -8,11 +8,9 @@
   double r, d, trange, t;
   char *name;
-  int Ngraph;
   Image *image;
   Graphdata graphmode;
   PhotCode *PhotcodeValue;
 
-  Ngraph = 0;
-  if (!GetGraphData (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraphData (&graphmode, NULL, NULL)) return (FALSE);
 
   TimeSelect = FALSE;
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imstats.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imstats.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/imstats.c	(revision 13391)
@@ -4,5 +4,5 @@
   
   int i, Nimage, N;
-  int Mcal, AutoLimits, Ngraph;
+  int Mcal, AutoLimits;
   double r, d;
   Image *image;
@@ -10,11 +10,5 @@
   Graphdata graphmode;
 
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!style_args (&graphmode, &argc, argv, NULL)) return (FALSE);
 
   Mcal = TRUE;
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/lcat.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/lcat.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/lcat.c	(revision 13391)
@@ -8,10 +8,8 @@
   struct stat filestat;
   Graphdata graphmode;
-  int Ngraph;
   SkyTable *sky;
   SkyList *skylist;
 
-  Ngraph = 0;
-  if (!GetGraphData (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraphData (&graphmode, NULL, NULL)) return (FALSE);
 
   ShowAll = FALSE;
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/lcurve.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/lcurve.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/lcurve.c	(revision 13391)
@@ -6,5 +6,5 @@
   double Ra, Dec, Radius, Radius2, r;
   float *RA, *DEC;
-  int Ngraph, Xgraph, TimeFormat;
+  int kapa, TimeFormat;
   int Nstars, found, AutoLimits, ErrorBars, GalMag, AbsPhot, SaveVectors;
   int i, j, m, N, NPTS, *N1;
@@ -19,12 +19,5 @@
 
   if (!InitPhotcodes ()) return (FALSE);
-
-  Ngraph = -1;
-  if ((N = get_argument (argc, argv, "-n"))) {
-    remove_argument (N, &argc, argv);
-    Ngraph = atof (argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if (!GetGraph (&graphmode, &Xgraph, &Ngraph)) return (FALSE);
+  if (!style_args (&graphmode, &argc, argv, &kapa)) return (FALSE);
 
   AutoLimits = FALSE;
@@ -175,5 +168,5 @@
 	   timeptr[0].tm_year, timeptr[0].tm_mon+1, timeptr[0].tm_mday);
   free (p);
-  KapaSendLabel (Xgraph, string, 0);
+  KapaSendLabel (kapa, string, 0);
 
   free (RA);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/paverage.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/paverage.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/paverage.c	(revision 13391)
@@ -23,5 +23,5 @@
   Nsecfilt = GetPhotcodeNsecfilt ();
 
-  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   f = (FILE *) NULL;
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/pcat.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/pcat.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/pcat.c	(revision 13391)
@@ -14,5 +14,5 @@
   double X[4], Y[4], Rmin, Rmax, Rmid;
   char catdir[256];
-  int Ngraph, VERBOSE;
+  int VERBOSE;
 
   VarConfig ("CATDIR", "%s", catdir);
@@ -33,6 +33,5 @@
     return (FALSE);
   }
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraph (&graphmode, NULL, NULL)) return (FALSE);
   
   Radius = MAX (fabs(graphmode.xmax), fabs(graphmode.ymax));
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/pmeasure.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/pmeasure.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/pmeasure.c	(revision 13391)
@@ -19,5 +19,5 @@
 
   if (!InitPhotcodes ()) return (FALSE);
-  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   f = (FILE *) NULL;
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/procks.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/procks.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/procks.c	(revision 13391)
@@ -23,9 +23,7 @@
   Graphdata graphmode;
   char rockcat[256];
-  int Ngraph;
 
-  Ngraph = 0;
   VarConfig ("ROCK_CATALOG", "%s", rockcat);
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraph (&graphmode, NULL, NULL)) return (FALSE);
 
   f = (FILE *) NULL;
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/region_list.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/region_list.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/region_list.c	(revision 13391)
@@ -95,5 +95,4 @@
 
   double Radius;
-  int Ngraph;
   Graphdata graphsky;
   SkyList *skylist;
@@ -121,6 +120,5 @@
   }
 
-  Ngraph = 0;
-  if (!GetGraphData (&graphsky, NULL, &Ngraph)) {
+  if (!GetGraphData (&graphsky, NULL, NULL)) {
     gprint (GP_ERR, "region display not available\n");
     return (NULL);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/showtile.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/showtile.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/showtile.c	(revision 13391)
@@ -5,5 +5,5 @@
 int showtile (int argc, char **argv) {
 
-  int Nd, N, NPTS, Ngraph, status, i, InPic;
+  int Nd, N, NPTS, status, i, InPic;
   Graphdata graphmode;
   Coords coords;
@@ -13,7 +13,5 @@
 
   /* show tile pattern in viewed region */
-
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraph (&graphmode, NULL, NULL)) return (FALSE);
 
   if (argc != 1) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/simage.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/simage.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/simage.c	(revision 13391)
@@ -14,8 +14,6 @@
   int i, j, Nstars, nstars, Nbytes, nbytes, Npts, N;
   Graphdata graphmode;
-  int Ngraph;
 
-  Ngraph = 0;
-  if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraph (&graphmode, NULL, NULL)) return (FALSE);
 
   zero = 17.0;
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/skycat.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/skycat.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/skycat.c	(revision 13391)
@@ -32,5 +32,5 @@
   }
 
-  if (!style_args (&graphmode, &argc, argv, 0)) return FALSE;
+  if (!style_args (&graphmode, &argc, argv, NULL)) return FALSE;
 
   if (argc != 1) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/include/data.h
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/include/data.h	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/include/data.h	(revision 13391)
@@ -162,5 +162,5 @@
 void          SetLimitsRaw          PROTO((float *xvec, float *yvec, int Npts, Graphdata *graphmode));
 void          ApplyLimits           PROTO((int Xgraph, Graphdata *graphmode, int apply));
-int           style_args            PROTO((Graphdata *graphmode, int *argc, char **argv, int Nforce));
+int           style_args            PROTO((Graphdata *graphmode, int *argc, char **argv, int *kapa));
 
 int read_table_vectors (int argc, char **argv, char *extname);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/include/display.h
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/include/display.h	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/include/display.h	(revision 13391)
@@ -10,6 +10,6 @@
 int           PlotVector            PROTO((int, float *));
 int           PlotVectorTriplet     PROTO((int N, float *xValues, float *yValues, float *zValues, Graphdata *graphmode));
-int           GetGraphData          PROTO((Graphdata *data, int *sock, int *N));
-int           GetGraph              PROTO((Graphdata *data, int *socket, int *N));
+int           GetGraphData          PROTO((Graphdata *data, int *kapa, char *name));
+int           GetGraph              PROTO((Graphdata *data, int *kapa, char *name));
 void          InitGraph             PROTO((void));
 int           open_graph            PROTO((int N));
@@ -21,5 +21,5 @@
 
 /* image (tv) functions */
-int           GetImage              PROTO((int *socket, int *N));
+int           GetImage              PROTO((int *kapa, char *name));
 char         *GetImageName          PROTO((void));
 void          GetImageScale         PROTO((double *zero, double *range));
@@ -35,6 +35,9 @@
 
 void InitKapa ();
-int FindKapaDevice (int thisDevice);
-int open_kapa (int thisDevice);
+int open_kapa (int entry);
+int AddKapaDevice (char *name);
+int DelKapaDevice (char *name);
+int FindKapaDevice (char *name);
+char *GetGraphName ();
 
 /* calling program need to define a function 'get_variable' which
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/PlotVectors.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/PlotVectors.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/PlotVectors.c	(revision 13391)
@@ -1,20 +1,20 @@
 # include "display.h"
 
-static int Xgraph;
+static int kapa;
 
 int PrepPlotting (int Npts, Graphdata *graphmode) {
 
-  if (!GetGraph (NULL, &Xgraph, NULL)) return (FALSE);
+  if (!GetGraph (NULL, &kapa, NULL)) return (FALSE);
   
   /* tell kapa to look for the incoming image */
-  KiiSendCommand (Xgraph, 4, "PLOT"); 
+  KiiSendCommand (kapa, 4, "PLOT"); 
   
-  /* send Xgraph the plot details */
-  KiiSendMessage (Xgraph, "%8d %8d %d %d %d %d %d %f %f", 
+  /* send kapa the plot details */
+  KiiSendMessage (kapa, "%8d %8d %d %d %d %d %d %f %f", 
 		  Npts, graphmode[0].style, 
 		  graphmode[0].ptype, graphmode[0].ltype, 
 		  graphmode[0].etype, graphmode[0].ebar, graphmode[0].color, 
 		  graphmode[0].lweight, graphmode[0].size);
-  KiiSendMessage (Xgraph, "%g %g %g %g", 
+  KiiSendMessage (kapa, "%g %g %g %g", 
 		  graphmode[0].xmin, graphmode[0].xmax, 
 		  graphmode[0].ymin, graphmode[0].ymax);
@@ -27,5 +27,5 @@
 
   Nbytes = Npts * sizeof (float);
-  write (Xgraph, values, Nbytes);
+  write (kapa, values, Nbytes);
   return (TRUE);
 }
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/open_kapa.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/open_kapa.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/open_kapa.c	(revision 13391)
@@ -1,4 +1,6 @@
 # include "display.h"
 # include "shell.h"
+# include <assert.h>
+
 
 /* kapa support for the new version of kapa (v2.0), which has both graph and image
@@ -20,4 +22,7 @@
   ALLOCATE (Device, char *, 1);			  // for future REALLOCATE calls
   ALLOCATE (Socket, int, 1);			  // for future REALLOCATE calls
+
+  InitGraph ();
+  InitImage ();
 }
 
@@ -41,5 +46,5 @@
 int DelKapaDevice (char *name) {
 
-  int N;
+  int i, N;
 
   N = FindKapaDevice (name);
@@ -75,6 +80,6 @@
 
   // find the given device number, or create. set this to active
-  assert (entry > 0);
-  assert (entry < Ndevice);
+  assert (entry >= 0);
+  assert (entry <  Ndevice);
 
   // if the (now) active socket is not open, open it
@@ -138,4 +143,10 @@
 # endif
 
+// return the current device name, if set 
+char *GetGraphName () {
+  if (Active < 0) return NULL;
+  return Device[Active];
+}
+
 /* return pointers for named device or current; open if needed */
 // if fd == NULL, don't return the value
@@ -176,5 +187,5 @@
       return (FALSE);
     }
-    entry = Active
+    entry = Active;
   } else {
     entry = FindKapaDevice (name);
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/style_args.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/style_args.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.data/style_args.c	(revision 13391)
@@ -2,17 +2,17 @@
 # include "display.h"
 
-int style_args (Graphdata *graphmode, int *argc, char **argv, int Nforce) {
+int style_args (Graphdata *graphmode, int *argc, char **argv, int *kapa) {
   
   int N, Ngraph;
   char *name;
 
-  Ngraph = -1;
+  name = NULL;
   if ((N = get_argument (*argc, argv, "-n"))) {
     remove_argument (N, argc, argv);
-    Ngraph = atof (argv[N]);
+    name = strcreate (argv[N]);
     remove_argument (N, argc, argv);
   }
-  if (Nforce != -1) Ngraph = Nforce;
-  if (!GetGraph (graphmode, NULL, &Ngraph)) return (FALSE);
+  if (!GetGraph (&graphmode, kapa, name)) return (FALSE);
+  FREE (name);
 
   if (*argc == 1) {
Index: /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.shell/startup.c
===================================================================
--- /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.shell/startup.c	(revision 13390)
+++ /branches/kapa-mods-2007-05/Ohana/src/opihi/lib.shell/startup.c	(revision 13391)
@@ -43,6 +43,6 @@
     else 
       set_str_variable ("HOME", home);
-    set_str_variable ("KII", "kii");
-    set_str_variable ("KAPA", "kapa");
+    set_str_variable ("KII", "kapa2");
+    set_str_variable ("KAPA", "kapa2");
     set_variable ("PID", getpid());
 
