Index: trunk/Ohana/src/libohana/include/ohana.h
===================================================================
--- trunk/Ohana/src/libohana/include/ohana.h	(revision 41320)
+++ trunk/Ohana/src/libohana/include/ohana.h	(revision 41321)
@@ -391,4 +391,5 @@
 int 	PrintIOBuffer  	       PROTO((IOBuffer *buffer, char *format, ...)) OHANA_FORMAT(printf, 2, 3);
 int 	vPrintIOBuffer 	       PROTO((IOBuffer *buffer, char *format, va_list argp));
+int     WriteToIOBuffer        PROTO((IOBuffer *buffer, char *input, int Ninput));
 
 /* communication functions */
Index: trunk/Ohana/src/libohana/src/IOBufferOps.c
===================================================================
--- trunk/Ohana/src/libohana/src/IOBufferOps.c	(revision 41320)
+++ trunk/Ohana/src/libohana/src/IOBufferOps.c	(revision 41321)
@@ -129,2 +129,18 @@
 }
   
+/* write the bytes to the IOBuffer */
+int WriteToIOBuffer (IOBuffer *buffer, char *input, int Ninput) {
+
+  // extend the buffer if needed
+  if (buffer[0].Nbuffer + Ninput + 1 >= buffer[0].Nalloc) {
+    buffer[0].Nalloc = buffer[0].Nbuffer + Ninput + 64;
+    REALLOCATE (buffer[0].buffer, char, buffer[0].Nalloc);
+  }
+
+  memcpy (&buffer[0].buffer[buffer[0].Nbuffer], input, Ninput);
+  buffer[0].Nbuffer += Ninput;
+  buffer[0].buffer[buffer[0].Nbuffer] = 0;
+
+  return (TRUE);
+}
+  
