Index: /branches/eam_branches/ohana.20150429/src/opihi/cmd.data/rd.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/opihi/cmd.data/rd.c	(revision 38337)
+++ /branches/eam_branches/ohana.20150429/src/opihi/cmd.data/rd.c	(revision 38338)
@@ -192,6 +192,19 @@
     ftable.header[0].buffer = NULL;
     gfits_copy_header (&buf[0].header, ftable.header);
+
     if (!gfits_fread_ftable_data (f, &ftable, FALSE)) { fprintf (stderr, "problem reading compressed image table data\n"); fclose (f); return FALSE; }
+    fprintf (stderr, "rd 1: ");
+    for (i = 0; i < 32; i++) {
+      fprintf (stderr, "0x%0hhx ", ftable.buffer[i]);
+    }
+    fprintf (stderr, "\n");
+  
     if (!gfits_byteswap_varlength_column (&ftable, 1)) { fprintf (stderr, "problem doing byteswap on compressed image metadata column\n"); fclose (f); gfits_free_table (&ftable); return FALSE; }
+    fprintf (stderr, "rd 2: ");
+    for (i = 0; i < 32; i++) {
+      fprintf (stderr, "0x%0hhx ", ftable.buffer[i]);
+    }
+    fprintf (stderr, "\n");
+
     if (!gfits_uncompress_image (&buf[0].header, &buf[0].matrix, &ftable)) { fprintf (stderr, "problem uncompressing the image data\n"); fclose (f); gfits_free_table (&ftable); return FALSE; }
 
@@ -199,4 +212,6 @@
     gfits_extended_to_primary (&buf[0].header, TRUE, "Standard FITS");
     gfits_free_table (&ftable);
+
+    status = TRUE;
     // XXX this currently does not work for a cube (we get a cube back, not a specific plane)
   } else {
Index: /branches/eam_branches/ohana.20150429/src/opihi/cmd.data/wd.c
===================================================================
--- /branches/eam_branches/ohana.20150429/src/opihi/cmd.data/wd.c	(revision 38337)
+++ /branches/eam_branches/ohana.20150429/src/opihi/cmd.data/wd.c	(revision 38338)
@@ -24,4 +24,12 @@
   }
 
+  char *CompressMode = NULL;
+  if ((N = get_argument (argc, argv, "-compress-mode"))) {
+    remove_argument (N, &argc, argv);
+    CompressMode = strcreate(argv[N]);
+    remove_argument (N, &argc, argv);
+  }
+  if (!CompressMode) CompressMode = strcreate("GZIP_1");
+
   outZero = 0;
   newZero = FALSE;
@@ -60,4 +68,5 @@
     if (outUnsign == -1) {
       gprint (GP_ERR, "-unsign options: t, f, true, false\n");
+      FREE (CompressMode);
       return (FALSE);
     }
@@ -68,8 +77,9 @@
   if (argc != 3) {
     gprint (GP_ERR, "USAGE: wd <buffer> <filename> [-bitpix N] [-bscale X] [-bzero X] [-extend] [-newplane]\n");
+    FREE (CompressMode);
     return (FALSE);
   }
 
-  if ((buf = SelectBuffer (argv[1], OLDBUFFER, TRUE)) == NULL) return (FALSE);
+  if ((buf = SelectBuffer (argv[1], OLDBUFFER, TRUE)) == NULL) { FREE (CompressMode); return (FALSE); }
 
   if (!newBitpix) outBitpix = buf[0].bitpix;
@@ -165,4 +175,5 @@
     gfits_free_header (&temp_header);
     gfits_free_matrix (&temp_matrix);
+    FREE (CompressMode);
     return (status);
   }
@@ -176,4 +187,5 @@
     if (!f) {
       fprintf (stderr, "ERROR: cannot open image subset file for output %s\n", argv[2]);
+      FREE (CompressMode);
       return FALSE;
     }
@@ -193,6 +205,18 @@
     ftable.header = &theader;
 
-    gfits_compress_image (&temp_header, &temp_matrix, &ftable, NULL, "GZIP_1");
+    int i;
+    gfits_compress_image (&temp_header, &temp_matrix, &ftable, NULL, CompressMode);
+    fprintf (stderr, "wd 1: ");
+    for (i = 0; i < 32; i++) {
+      fprintf (stderr, "0x%0hhx ", ftable.buffer[i]);
+    }
+    fprintf (stderr, "\n");
+
     gfits_byteswap_varlength_column (&ftable, 1);
+    fprintf (stderr, "wd 2: ");
+    for (i = 0; i < 32; i++) {
+      fprintf (stderr, "0x%0hhx ", ftable.buffer[i]);
+    }
+    fprintf (stderr, "\n");
     
     gfits_fwrite_Theader (f, &theader);
@@ -202,4 +226,5 @@
     gfits_free_header (&theader);
     gfits_free_table (&ftable);
+    FREE (CompressMode);
     return (TRUE);
   }
@@ -210,4 +235,5 @@
     gfits_free_header (&temp_header);
     gfits_free_matrix (&temp_matrix);
+    FREE (CompressMode);
     return (FALSE);
   }
@@ -217,4 +243,5 @@
     gfits_free_header (&temp_header);
     gfits_free_matrix (&temp_matrix);
+    FREE (CompressMode);
     return (FALSE);
   }
@@ -223,4 +250,5 @@
   gfits_free_matrix (&temp_matrix);
   
+  FREE (CompressMode);
   return (TRUE);
 }
