Index: /trunk/Ohana/src/opihi/cmd.data/Makefile
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/Makefile	(revision 42455)
+++ /trunk/Ohana/src/opihi/cmd.data/Makefile	(revision 42456)
@@ -135,4 +135,5 @@
 $(SRC)/queuepop.$(ARCH).o	\
 $(SRC)/queueprint.$(ARCH).o	\
+$(SRC)/queuesave.$(ARCH).o	\
 $(SRC)/queuesubstr.$(ARCH).o	\
 $(SRC)/queueinit.$(ARCH).o	\
Index: /trunk/Ohana/src/opihi/cmd.data/init.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/init.c	(revision 42455)
+++ /trunk/Ohana/src/opihi/cmd.data/init.c	(revision 42456)
@@ -122,4 +122,5 @@
 int queueprint       PROTO((int, char **));
 int queuepush        PROTO((int, char **));
+int queuesave        PROTO((int, char **));
 int queuesubstr      PROTO((int, char **));
 int queuesize        PROTO((int, char **));
@@ -333,4 +334,5 @@
   {1, "queueprint",   queueprint,       "print the contents of a queue"},
   {1, "queuepush",    queuepush,        "push value onto queue"},
+  {1, "queuesave",    queuesave,        "save the contents of a queue in a filex"},
   {1, "queuesize",    queuesize,        "show queue size"},
   {1, "queuesubstr",  queuesubstr,      "bulk replace strings in queue"},
Index: /trunk/Ohana/src/opihi/cmd.data/queuesave.c
===================================================================
--- /trunk/Ohana/src/opihi/cmd.data/queuesave.c	(revision 42456)
+++ /trunk/Ohana/src/opihi/cmd.data/queuesave.c	(revision 42456)
@@ -0,0 +1,21 @@
+# include "data.h"
+
+int queuesave (int argc, char **argv) {
+  
+  Queue *queue;
+
+  if (argc != 3) {
+    gprint (GP_ERR, "USAGE: queuesave (name) (file)\n");
+    return (FALSE);
+  }
+
+  queue = FindQueue (argv[1]);
+  if (queue == NULL) {
+    gprint (GP_ERR, "ERROR: queue %s not found\n", argv[1]);
+    return (FALSE);
+  }
+
+  SaveQueue (queue, argv[2]);
+  return (TRUE);
+}
+
Index: /trunk/Ohana/src/opihi/include/data.h
===================================================================
--- /trunk/Ohana/src/opihi/include/data.h	(revision 42455)
+++ /trunk/Ohana/src/opihi/include/data.h	(revision 42456)
@@ -124,4 +124,5 @@
 int DeleteQueue (Queue *queue);
 int PrintQueue (Queue *queue);
+int SaveQueue (Queue *queue, char *filename);
 
 /* in fft.c */
Index: /trunk/Ohana/src/opihi/lib.data/queues.c
===================================================================
--- /trunk/Ohana/src/opihi/lib.data/queues.c	(revision 42455)
+++ /trunk/Ohana/src/opihi/lib.data/queues.c	(revision 42456)
@@ -398,2 +398,19 @@
 }
 
+int SaveQueue (Queue *queue, char *filename) {
+
+  if (queue[0].Nlines == 0) return (TRUE);
+
+  FILE *f = fopen (filename, "a");
+  if (!f) {
+    gprint (GP_ERR, "unable to open output file %s\n", filename);
+    return FALSE;
+  }
+
+  for (int i = 0; i < queue[0].Nlines; i++) {
+    fprintf (f, "%s\n", queue[0].lines[i]);
+  }
+  fclose (f);
+  return (TRUE);
+}
+
