Index: /trunk/Ohana/src/libkapa/Makefile
===================================================================
--- /trunk/Ohana/src/libkapa/Makefile	(revision 35760)
+++ /trunk/Ohana/src/libkapa/Makefile	(revision 35761)
@@ -24,5 +24,4 @@
 $(SRC)/IOfuncs.$(ARCH).o  \
 $(SRC)/KiiPicture.$(ARCH).o \
-$(SRC)/KiiOpen.$(ARCH).o \
 $(SRC)/KiiOverlay.$(ARCH).o \
 $(SRC)/KiiCursor.$(ARCH).o \
@@ -31,4 +30,7 @@
 $(SRC)/KapaColors.$(ARCH).o \
 $(SRC)/KapaOpen.$(ARCH).o
+
+# deprecated:
+# $(SRC)/KiiOpen.$(ARCH).o
 
 DRAW = \
Index: /trunk/Ohana/src/libkapa/include/kapa.h
===================================================================
--- /trunk/Ohana/src/libkapa/include/kapa.h	(revision 35760)
+++ /trunk/Ohana/src/libkapa/include/kapa.h	(revision 35761)
@@ -142,9 +142,4 @@
 char *KiiRecvData (int device);
 int KiiWaitAnswer (int device, char *expect);
-
-/* KiiOpen.c */
-int KiiOpen (char *kii_exec, char *name);
-int KiiClose (int socket);
-int KiiWait (char *sockpath);
 
 /* KiiPicture.c */
@@ -271,4 +266,5 @@
 int KapaOpenNamedSocket (char *kapa_exec, char *name);
 int KapaWaitNamedSocket (char *sockpath);
+int KapaClose (int socket);
 
 /* define Kapa names for shared functions */
@@ -281,5 +277,6 @@
 # define KapaPS(fd,s,r,f) KiiPS(fd,s,r,f)
 
-# define KapaClose(socket) KiiClose(socket)
+// deprecated
+// # define KapaClose(socket) KiiClose(socket)
 # define KapaWait(sockpath) KiiWait(sockpath)
 # define KapaSendCommandV(device, length, format, argp) KiiSendCommandV(device, length, format, argp)
Index: /trunk/Ohana/src/libkapa/src/IOfuncs.c
===================================================================
--- /trunk/Ohana/src/libkapa/src/IOfuncs.c	(revision 35760)
+++ /trunk/Ohana/src/libkapa/src/IOfuncs.c	(revision 35761)
@@ -30,4 +30,6 @@
   sscanf (buffer, "%*s %d", &Nbytes);
   ALLOCATE (data, char, Nbytes + 1);
+  memset (data, 0, Nbytes + 1);
+
   status = read (device, data, Nbytes);
   if (status != Nbytes) {
@@ -78,9 +80,10 @@
       // XXX BUT: I need to think a bit more about hand-shaking.
   }
-  if (DEBUG) fprintf (stderr, "recv buffer: %s\n", buffer);
+  if (DEBUG) fprintf (stderr, "recv buffer: %s...\n", buffer);
 
   /* find the message length, allocate space */
   sscanf (buffer, "%*s %d", &Nbytes);
   ALLOCATE (message, char, Nbytes + 1);
+  memset (message, 0, Nbytes + 1);
 
   /* read Nbytes from the device */
@@ -92,5 +95,5 @@
   /* make the string easy to parse */
 
-  if (DEBUG) fprintf (stderr, "recv: %s\n", message);
+  if (DEBUG) fprintf (stderr, "recv: %s...\n", message);
 
   /* scan the incoming message */
@@ -131,5 +134,5 @@
   if (Nwrite != length) return (FALSE);
 
-  if (DEBUG) fprintf (stderr, "send: %s\n", string);
+  if (DEBUG) fprintf (stderr, "send: %s...\n", string);
 
   free (string);
@@ -145,8 +148,9 @@
 
   ALLOCATE (message, char, length + 1);
+  memset (message, 0, length + 1);
 
   /* read Nbytes from the device */
   status = read (device, message, length);
-  if (DEBUG) fprintf (stderr, "recv message: %s\n", message);
+  if (DEBUG) fprintf (stderr, "recv message: %s...\n", message);
 
   if (status != length) {
@@ -173,4 +177,5 @@
   Nbytes = strlen (expect);
   ALLOCATE (answer, char, Nbytes + 1);
+  memset (answer, 0, Nbytes + 1);
 
   KiiScanCommand (device, Nbytes, "%s", answer);
Index: /trunk/Ohana/src/libkapa/src/KapaOpen.c
===================================================================
--- /trunk/Ohana/src/libkapa/src/KapaOpen.c	(revision 35760)
+++ /trunk/Ohana/src/libkapa/src/KapaOpen.c	(revision 35761)
@@ -430,2 +430,10 @@
   return (pid);
 }
+
+int KapaClose (int fd) {
+
+  if (fd < 1) return (FALSE);
+  KiiSendCommand (fd, 4, "QUIT");
+  close (fd);
+  return (TRUE);
+}
Index: /trunk/Ohana/src/libkapa/src/KapaWindow.c
===================================================================
--- /trunk/Ohana/src/libkapa/src/KapaWindow.c	(revision 35760)
+++ /trunk/Ohana/src/libkapa/src/KapaWindow.c	(revision 35761)
@@ -22,5 +22,5 @@
 
   KiiSendCommand (fd, 4, "RSIZ");
-  KiiSendMessage (fd, "%d %d", Nx, Ny); 
+  KiiSendMessage (fd, "%d %d ", Nx, Ny); 
   KiiWaitAnswer (fd, "DONE");
   return (TRUE);
@@ -37,5 +37,5 @@
 
   KiiSendCommand (fd, 4, "MOVE");
-  KiiSendMessage (fd, "%d %d", x, y); 
+  KiiSendMessage (fd, "%d %d ", x, y); 
   KiiWaitAnswer (fd, "DONE");
   return (TRUE);
@@ -83,5 +83,5 @@
   
   KiiSendCommand (fd, 4, "TOOL");
-  KiiSendMessage (fd, "%d", location); 
+  KiiSendMessage (fd, "%d ", location); 
   KiiWaitAnswer (fd, "DONE");
   return (TRUE);
@@ -134,10 +134,10 @@
   
   /* send kapa the plot details */
-  KiiSendMessage (fd, "%8d %8d %d %d %d %d %d %f %f", 
+  KiiSendMessage (fd, "%8d %8d %d %d %d %d %d %f %f ", 
 		  Npts, data[0].style, 
 		  data[0].ptype, data[0].ltype, 
 		  data[0].etype, data[0].ebar, data[0].color, 
 		  data[0].lweight, data[0].size);
-  KiiSendMessage (fd, "%g %g %g %g", 
+  KiiSendMessage (fd, "%g %g %g %g ", 
 		  data[0].xmin, data[0].xmax, 
 		  data[0].ymin, data[0].ymax);
@@ -149,9 +149,9 @@
 
   /* send kapa the plot details */
-  KiiSendMessage (fd, "%g %g %g %g", 
+  KiiSendMessage (fd, "%g %g %g %g ", 
 		  data[0].xmin, data[0].xmax, 
 		  data[0].ymin, data[0].ymax);
 
-  KiiSendMessage (fd, "%8d %d %d %d %d %d %f %f", 
+  KiiSendMessage (fd, "%8d %d %d %d %d %d %f %f ", 
 		  data[0].style, 
 		  data[0].ptype, data[0].ltype, 
@@ -159,22 +159,22 @@
 		  data[0].lweight, data[0].size);
 
-  KiiSendMessage (fd, "%g %g %g %g %g", 
+  KiiSendMessage (fd, "%g %g %g %g %g ", 
 		  data[0].ticktextPad,
 		  data[0].padXm, data[0].padXp, 
 		  data[0].padYm, data[0].padYp);
 
-  KiiSendMessage (fd, "%g %g %g %g", 
+  KiiSendMessage (fd, "%g %g %g %g ", 
 		  data[0].labelPadXm, data[0].labelPadXp, 
 		  data[0].labelPadYm, data[0].labelPadYp);
 
-  KiiSendMessage (fd, "%g %g %g %g", 
+  KiiSendMessage (fd, "%g %g %g %g ", 
 		  data[0].coords.pc1_1, data[0].coords.pc2_2,
 		  data[0].coords.pc1_2, data[0].coords.pc2_1);
 
-  KiiSendMessage (fd, "%d %d %s", 
+  KiiSendMessage (fd, "%d %d %s ", 
 		  data[0].flipeast, data[0].flipnorth,
 		  data[0].coords.ctype);
 
-  KiiSendMessage (fd, "%g %g %g %g %g %g", 
+  KiiSendMessage (fd, "%g %g %g %g %g %g ", 
 		  data[0].coords.crval1,
 		  data[0].coords.crval2,
@@ -184,5 +184,5 @@
 		  data[0].coords.cdelt2);
 
-  KiiSendMessage (fd, "%s %s %s", data[0].axis, data[0].ticks, data[0].labels);
+  KiiSendMessage (fd, "%s %s %s ", data[0].axis, data[0].ticks, data[0].labels);
 
   return (TRUE);
@@ -265,5 +265,5 @@
   
   /* send kapa the plot details */
-  KiiSendMessage (fd, "%g %g %s %s", 
+  KiiSendMessage (fd, "%g %g %s %s ", 
 		  data[0].zero, data[0].range, data[0].name, data[0].file);
 
@@ -308,5 +308,5 @@
 valid:
   KiiSendCommand (fd, 4, "PLOB"); 
-  KiiSendMessage (fd, "%s %d %d %d", type, Npts, Nbytes, swap); 
+  KiiSendMessage (fd, "%s %d %d %d ", type, Npts, Nbytes, swap); 
 
   Nwrite = write (fd, values, Nbytes);
@@ -322,6 +322,6 @@
 
   KiiSendCommand (fd, 4, "FONT");
-  KiiSendCommand (fd, 16, "%s", name);
-  KiiSendCommand (fd, 16, "%d", size);
+  KiiSendCommand (fd, 16, "%s ", name);
+  KiiSendCommand (fd, 16, "%d ", size);
   KiiWaitAnswer (fd, "DONE");
   return (TRUE);
@@ -331,5 +331,5 @@
 
   KiiSendCommand (fd, 4, "LABL");
-  KiiSendMessage (fd, "%6d", mode);
+  KiiSendMessage (fd, "%6d ", mode);
   KiiSendData (fd, string, strlen(string));
   KiiWaitAnswer (fd, "DONE");
@@ -340,5 +340,5 @@
   
   KiiSendCommand (fd, 4, "PTXT");
-  KiiSendMessage (fd, "%f %f %f", x, y, angle);
+  KiiSendMessage (fd, "%f %f %f ", x, y, angle);
   KiiSendData (fd, string, strlen(string));
   KiiWaitAnswer (fd, "DONE");
@@ -366,5 +366,5 @@
 
   KiiSendCommand (fd, 4, "DSEC");
-  KiiSendMessage (fd, "%s %6.3f %6.3f %6.3f %6.3f %3d", 
+  KiiSendMessage (fd, "%s %6.3f %6.3f %6.3f %6.3f %3d ", 
 		  section[0].name, 
 		  section[0].x,
@@ -380,5 +380,5 @@
 
   KiiSendCommand (fd, 4, "ISEC");
-  KiiSendMessage (fd, "%s %6.3f %6.3f %3d", 
+  KiiSendMessage (fd, "%s %6.3f %6.3f %3d ", 
 		  section[0].name, 
 		  section[0].x,
@@ -392,5 +392,5 @@
 
   KiiSendCommand (fd, 4, "BSEC");
-  KiiSendMessage (fd, "%s %3d", name, bg);
+  KiiSendMessage (fd, "%s %3d ", name, bg);
   KiiWaitAnswer (fd, "DONE");
   return (TRUE);
@@ -409,5 +409,5 @@
 valid:
   KiiSendCommand (fd, 4, "MSEC");
-  KiiSendMessage (fd, "%s %s", name, direction);
+  KiiSendMessage (fd, "%s %s ", name, direction);
   KiiWaitAnswer (fd, "DONE");
   return (TRUE);
@@ -417,5 +417,5 @@
 
   KiiSendCommand (fd, 4, "SSEC");
-  KiiSendMessage (fd, "%s", name);
+  KiiSendMessage (fd, "%s ", name);
   KiiWaitAnswer (fd, "DONE");
   return (TRUE);
@@ -425,6 +425,6 @@
 
   KiiSendCommand (fd, 4, "LSEC");
-  KiiSendMessage (fd, "%s", name);
-  KiiWaitAnswer (fd, "DONE");
-  return (TRUE);
-}
+  KiiSendMessage (fd, "%s ", name);
+  KiiWaitAnswer (fd, "DONE");
+  return (TRUE);
+}
