Index: trunk/Ohana/src/opihi/cmd.data/create.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/create.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/create.c	(revision 7080)
@@ -55,6 +55,6 @@
 
   if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
 
   buf[0].bitpix = 16;
@@ -72,6 +72,6 @@
   buf[0].header.Naxis[1] = atoi (argv[3]);
 
-  fits_create_header (&buf[0].header);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_create_header (&buf[0].header);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
 
   return (TRUE);
Index: trunk/Ohana/src/opihi/cmd.data/cursor.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/cursor.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/cursor.c	(revision 7080)
@@ -58,5 +58,5 @@
     if (IsImage) {
       if (buf != NULL) { 
-	Z = fits_get_matrix_value (&buf[0].matrix, (int) X, (int) Y);
+	Z = gfits_get_matrix_value (&buf[0].matrix, (int) X, (int) Y);
       }
       fprintf (GetOutfile(), "%s %f %f  %f\n", key, X, Y, Z);
Index: trunk/Ohana/src/opihi/cmd.data/dimenup.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/dimenup.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/dimenup.c	(revision 7080)
@@ -28,6 +28,6 @@
 
   /* I should encapsulate this in a create_default_buffer */
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
   buf[0].header.bitpix = buf[0].bitpix = -32;
   buf[0].header.unsign = buf[0].unsign = FALSE;
@@ -37,6 +37,6 @@
   buf[0].header.Naxis[0] = Nx;
   buf[0].header.Naxis[1] = Ny;
-  fits_create_header (&buf[0].header);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_create_header (&buf[0].header);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
 
   out = (float *) buf[0].matrix.buffer;
Index: trunk/Ohana/src/opihi/cmd.data/dot.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/dot.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/dot.c	(revision 7080)
@@ -3,53 +3,8 @@
 int dot (int argc, char **argv) {
   
-  int N, Ngraph;
   Graphdata graphmode;
   float x, y;
 
-  /* choose the appropriate graphing window */
-  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);
-
-  /* evaluate various plotting options */
-  if ((N = get_argument (argc, argv, "-lt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ltype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-lw"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.lweight = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-pt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ptype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "+eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = TRUE;
-  }
-  if ((N = get_argument (argc, argv, "-eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = FALSE;
-  }
-  if ((N = get_argument (argc, argv, "-sz"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.size = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-c"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.color = KapaColorByName (argv[N]);
-    if (graphmode.color == -1) return (FALSE);
-    remove_argument (N, &argc, argv);
-  }
-  graphmode.style = 2;
+  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
 
   if (argc != 3) {
@@ -63,5 +18,6 @@
   SetGraph (graphmode);
 
-  /* set errorbar mode (these are NOT sticky) */
+  /* set point style and errorbar mode (these are NOT sticky) */
+  graphmode.style = 2;
   graphmode.etype = 0;
 
Index: trunk/Ohana/src/opihi/cmd.data/extract.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/extract.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/extract.c	(revision 7080)
@@ -53,6 +53,6 @@
   if ((out = SelectBuffer (argv[2], OLDBUFFER, FALSE)) == NULL) {
     if ((out = SelectBuffer (argv[2], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-    fits_free_matrix (&out[0].matrix);
-    fits_free_header (&out[0].header);
+    gfits_free_matrix (&out[0].matrix);
+    gfits_free_header (&out[0].header);
 
     out[0].bitpix = in[0].bitpix;
@@ -60,10 +60,10 @@
     out[0].bscale = in[0].bscale;
     out[0].bzero  = in[0].bzero;
-    fits_copy_header (&in[0].header, &out[0].header);
-    fits_modify (&out[0].header, "NAXIS1", "%d", 1, Nx);
-    fits_modify (&out[0].header, "NAXIS2", "%d", 1, Ny);
+    gfits_copy_header (&in[0].header, &out[0].header);
+    gfits_modify (&out[0].header, "NAXIS1", "%d", 1, Nx);
+    gfits_modify (&out[0].header, "NAXIS2", "%d", 1, Ny);
     out[0].header.Naxis[0] = Nx;
     out[0].header.Naxis[1] = Ny;
-    fits_create_matrix (&out[0].header, &out[0].matrix);
+    gfits_create_matrix (&out[0].header, &out[0].matrix);
   } else {
     if ((out[0].header.Naxis[1] != Ny) || (out[0].header.Naxis[0] != Nx)) {
Index: trunk/Ohana/src/opihi/cmd.data/fft2d.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/fft2d.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/fft2d.c	(revision 7080)
@@ -32,8 +32,8 @@
 
   /* free up output space */
-  fits_free_matrix (&Ore[0].matrix);
-  fits_free_header (&Ore[0].header);
-  fits_free_matrix (&Oim[0].matrix);
-  fits_free_header (&Oim[0].header);
+  gfits_free_matrix (&Ore[0].matrix);
+  gfits_free_header (&Ore[0].header);
+  gfits_free_matrix (&Oim[0].matrix);
+  gfits_free_header (&Oim[0].header);
 
   /* get image dimensions, check value */
@@ -74,7 +74,7 @@
 
   /* fix up output headers (real) */
-  fits_copy_header (&Ire[0].header, &Ore[0].header);
-  fits_modify (&Ore[0].header, "NAXIS1", "%d", 1, Nx);
-  fits_modify (&Ore[0].header, "NAXIS2", "%d", 1, Ny);
+  gfits_copy_header (&Ire[0].header, &Ore[0].header);
+  gfits_modify (&Ore[0].header, "NAXIS1", "%d", 1, Nx);
+  gfits_modify (&Ore[0].header, "NAXIS2", "%d", 1, Ny);
   Ore[0].header.Naxis[0] = Nx;
   Ore[0].header.Naxis[1] = Ny;
@@ -83,10 +83,10 @@
   Ore[0].bscale = Ire[0].bscale;
   Ore[0].bzero  = Ire[0].bzero;
-  fits_create_matrix (&Ore[0].header, &Ore[0].matrix);
+  gfits_create_matrix (&Ore[0].header, &Ore[0].matrix);
 
   /* fix up output headers (imaginary) */
-  fits_copy_header (&Ire[0].header, &Oim[0].header);
-  fits_modify (&Oim[0].header, "NAXIS1", "%d", 1, Nx);
-  fits_modify (&Oim[0].header, "NAXIS2", "%d", 1, Ny);
+  gfits_copy_header (&Ire[0].header, &Oim[0].header);
+  gfits_modify (&Oim[0].header, "NAXIS1", "%d", 1, Nx);
+  gfits_modify (&Oim[0].header, "NAXIS2", "%d", 1, Ny);
   Oim[0].header.Naxis[0] = Nx;
   Oim[0].header.Naxis[1] = Ny;
@@ -95,5 +95,5 @@
   Oim[0].bscale = Ire[0].bscale;
   Oim[0].bzero  = Ire[0].bzero;
-  fits_create_matrix (&Oim[0].header, &Oim[0].matrix);
+  gfits_create_matrix (&Oim[0].header, &Oim[0].matrix);
 
   /* move data from working space to output buffers */
Index: trunk/Ohana/src/opihi/cmd.data/gridify.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/gridify.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/gridify.c	(revision 7080)
@@ -56,6 +56,6 @@
   free (bf[0].header.buffer);  /* ALLOCATEd in SelectBuffer */
   free (bf[0].matrix.buffer);  /* ALLOCATEd in SelectBuffer */
-  fits_create_header (&bf[0].header);
-  fits_create_matrix (&bf[0].header, &bf[0].matrix);
+  gfits_create_header (&bf[0].header);
+  gfits_create_matrix (&bf[0].header, &bf[0].matrix);
 
   ALLOCATE (val, float, Nx*Ny);
Index: trunk/Ohana/src/opihi/cmd.data/keyword.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/keyword.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/keyword.c	(revision 7080)
@@ -92,12 +92,12 @@
     switch (Wmode) {
     case STRING:
-      fits_modify (&buf[0].header, argv[2], "%s", 1, line);
+      gfits_modify (&buf[0].header, argv[2], "%s", 1, line);
       return (TRUE);
     case FLOAT:
       value = atof(line);
-      fits_modify (&buf[0].header, argv[2], "%lf", 1, value);
+      gfits_modify (&buf[0].header, argv[2], "%lf", 1, value);
       return (TRUE);
     case INT:
-      fits_modify (&buf[0].header, argv[2], "%d", 1, atoi(line));
+      gfits_modify (&buf[0].header, argv[2], "%d", 1, atoi(line));
       return (TRUE);
     case BOOLEAN:
@@ -107,11 +107,11 @@
       }
       ivalue = !strcasecmp (line, "T");
-      fits_modify (&buf[0].header, argv[2], "%t", 1, ivalue);
+      gfits_modify (&buf[0].header, argv[2], "%t", 1, ivalue);
       return (TRUE);
     case KEYCOMMENT:
-      fits_modify (&buf[0].header, argv[2], "%C", 1, line);
+      gfits_modify (&buf[0].header, argv[2], "%C", 1, line);
       return (TRUE);
     case COMMENT:
-      fits_modify (&buf[0].header, argv[2], "%S", 0, line);
+      gfits_modify (&buf[0].header, argv[2], "%S", 0, line);
       return (TRUE);
     }
@@ -119,5 +119,5 @@
   
   if (delete) {
-    fits_delete (&buf[0].header, argv[2], -1);
+    gfits_delete (&buf[0].header, argv[2], -1);
     return (TRUE);
   }
@@ -125,5 +125,5 @@
   /* grab the value in the given format, either a string or a digit */
   if (asfloat) {
-    status = fits_scan (&buf[0].header, argv[2], "%lf", 1, &value);
+    status = gfits_scan (&buf[0].header, argv[2], "%lf", 1, &value);
     if (!status) goto failure;
     if (argc == 4) 
@@ -135,5 +135,5 @@
 
   if (ascomment) {
-    status = fits_scan (&buf[0].header, argv[2], "%C", 1, line);
+    status = gfits_scan (&buf[0].header, argv[2], "%C", 1, line);
     if (!status) goto failure;
     if (argc == 4) 
@@ -145,5 +145,5 @@
 
   /* not-specified */
-  status = fits_scan (&buf[0].header, argv[2], "%s", 1, line);
+  status = gfits_scan (&buf[0].header, argv[2], "%s", 1, line);
   if (!status) goto failure;
   if (argc == 4) 
Index: trunk/Ohana/src/opihi/cmd.data/line.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/line.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/line.c	(revision 7080)
@@ -3,57 +3,9 @@
 int line (int argc, char **argv) {
   
-  int N, Npts, Ngraph;
+  int N, Npts;
   Graphdata graphmode;
   Vector *vecx, *vecy, *dxm, *dxp, *dym, *dyp;
 
-  /* choose the appropriate graphing window */
-  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);
-
-  /* evaluate various plotting options */
-  if ((N = get_argument (argc, argv, "-lt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ltype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-lw"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.lweight = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-pt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ptype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "+eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = TRUE;
-  }
-  if ((N = get_argument (argc, argv, "-eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = FALSE;
-  }
-  if ((N = get_argument (argc, argv, "-sz"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.size = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-c"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.color = KapaColorByName (argv[N]);
-    if (graphmode.color == -1) return (FALSE);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-x"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.style = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
+  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
 
   /* decide on error bars */
@@ -84,6 +36,4 @@
     return (FALSE);
   }
-
-  /* set plotting options (these are sticky) */
   SetGraph (graphmode);
 
Index: trunk/Ohana/src/opihi/cmd.data/list_header.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/list_header.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/list_header.c	(revision 7080)
@@ -36,18 +36,18 @@
     bscale = buf[0].header.bscale;
     unsign = buf[0].header.unsign;
-    fits_free_header (&buf[0].header);
+    gfits_free_header (&buf[0].header);
     
     strcpy (filename, buf[0].file);
     strcpy (buf[0].file, "*");
     strcat (buf[0].file, filename);
-    status = fits_read_header (argv[2], &buf[0].header);
+    status = gfits_read_header (argv[2], &buf[0].header);
     buf[0].header.bitpix = bitpix;     
     buf[0].header.bzero  = bzero;      
     buf[0].header.bscale = bscale;     
     buf[0].header.unsign = unsign;     
-    fits_modify (&buf[0].header, "BITPIX", "%d",  1, bitpix);
-    fits_modify (&buf[0].header, "BSCALE", "%lf", 1, bscale);
-    fits_modify (&buf[0].header, "BZERO",  "%lf", 1, bzero);
-    fits_modify (&buf[0].header, "UNSIGN", "%t",  1, unsign);
+    gfits_modify (&buf[0].header, "BITPIX", "%d",  1, bitpix);
+    gfits_modify (&buf[0].header, "BSCALE", "%lf", 1, bscale);
+    gfits_modify (&buf[0].header, "BZERO",  "%lf", 1, bzero);
+    gfits_modify (&buf[0].header, "UNSIGN", "%t",  1, unsign);
     
   } else {
@@ -55,5 +55,5 @@
     f = popen ("more", "w");
     
-    p = fits_header_field (&buf[0].header, "END", 1);
+    p = gfits_header_field (&buf[0].header, "END", 1);
     nlines = (p - buf[0].header.buffer) / 80;
     nbytes = 81*nlines;
Index: trunk/Ohana/src/opihi/cmd.data/mcreate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/mcreate.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/mcreate.c	(revision 7080)
@@ -19,6 +19,6 @@
 
   /* I should encapsulate this in a create_default_buffer */
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
   buf[0].header.bitpix = buf[0].bitpix = -32;
   buf[0].header.unsign = buf[0].unsign = FALSE;
@@ -28,6 +28,6 @@
   buf[0].header.Naxis[0] = Nx;
   buf[0].header.Naxis[1] = Ny;
-  fits_create_header (&buf[0].header);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_create_header (&buf[0].header);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
   return (TRUE);
 
Index: trunk/Ohana/src/opihi/cmd.data/minterpolate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/minterpolate.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/minterpolate.c	(revision 7080)
@@ -26,6 +26,6 @@
   if ((out = SelectBuffer (argv[2], ANYBUFFER, TRUE)) == NULL) return (FALSE);
 
-  fits_free_matrix (&out[0].matrix);
-  fits_free_header (&out[0].header);
+  gfits_free_matrix (&out[0].matrix);
+  gfits_free_header (&out[0].header);
 
   scale  = atof (argv[3]);
@@ -41,28 +41,28 @@
   out[0].bscale = in[0].bscale;
   out[0].bzero  = in[0].bzero;
-  fits_copy_header (&in[0].header, &out[0].header);
+  gfits_copy_header (&in[0].header, &out[0].header);
 
-  fits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
-  fits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
+  gfits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
+  gfits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
   out[0].header.Naxis[0] = nx;
   out[0].header.Naxis[1] = ny;
-  fits_create_matrix (&out[0].header, &out[0].matrix);
+  gfits_create_matrix (&out[0].header, &out[0].matrix);
 
   /* fix astrometric terms */
-  status =  fits_scan (&out[0].header, "CDELT1", "%lf", 1, &dX);
-  status &= fits_scan (&out[0].header, "CDELT2", "%lf", 1, &dY);
+  status =  gfits_scan (&out[0].header, "CDELT1", "%lf", 1, &dX);
+  status &= gfits_scan (&out[0].header, "CDELT2", "%lf", 1, &dY);
   dX /= scale;
   dY /= scale;
   if (status) {
-    fits_modify (&out[0].header, "CDELT1", "%lf", 1, dX);
-    fits_modify (&out[0].header, "CDELT2", "%lf", 1, dY);
+    gfits_modify (&out[0].header, "CDELT1", "%lf", 1, dX);
+    gfits_modify (&out[0].header, "CDELT2", "%lf", 1, dY);
   }
-  status =  fits_scan (&out[0].header, "CRPIX1", "%lf", 1, &dX);
-  status &= fits_scan (&out[0].header, "CRPIX2", "%lf", 1, &dY);
+  status =  gfits_scan (&out[0].header, "CRPIX1", "%lf", 1, &dX);
+  status &= gfits_scan (&out[0].header, "CRPIX2", "%lf", 1, &dY);
   dX *= scale;
   dY *= scale;
   if (status) {
-    fits_modify (&out[0].header, "CRPIX1", "%lf", 1, dX);
-    fits_modify (&out[0].header, "CRPIX2", "%lf", 1, dY);
+    gfits_modify (&out[0].header, "CRPIX1", "%lf", 1, dX);
+    gfits_modify (&out[0].header, "CRPIX2", "%lf", 1, dY);
   }
 
Index: trunk/Ohana/src/opihi/cmd.data/plot.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/plot.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/plot.c	(revision 7080)
@@ -3,57 +3,9 @@
 int plot (int argc, char **argv) {
   
-  int N, Npts, Ngraph;
+  int N, Npts;
   Graphdata graphmode;
   Vector *xvec, *yvec, *dxmvec, *dxpvec, *dymvec, *dypvec;
 
-  /* choose the appropriate graphing window */
-  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);
-
-  /* evaluate various plotting options */
-  if ((N = get_argument (argc, argv, "-lt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ltype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-lw"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.lweight = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-pt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ptype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "+eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = TRUE;
-  }
-  if ((N = get_argument (argc, argv, "-eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = FALSE;
-  }
-  if ((N = get_argument (argc, argv, "-sz"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.size = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-c"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.color = KapaColorByName (argv[N]);
-    if (graphmode.color == -1) return (FALSE);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-x"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.style = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
+  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
 
   /* decide on error bars */
@@ -81,9 +33,7 @@
 
   if (argc != 3) {
-    fprintf (stderr, "USAGE: plot <x> <y>\n");
+    fprintf (stderr, "USAGE: plot <x> <y> [style]\n");
     return (FALSE);
   }
-
-  /* set plotting options (these are sticky) */
   SetGraph (graphmode);
 
@@ -92,8 +42,8 @@
   if ((dymvec != NULL) && (dypvec == NULL)) dypvec = dymvec;
   if ((dypvec != NULL) && (dymvec == NULL)) dymvec = dypvec;
-  if (dypvec != NULL) graphmode.etype |= 0x01;
+  if ((dypvec != NULL) || (dymvec != NULL)) graphmode.etype |= 0x01;
   if ((dxmvec != NULL) && (dxpvec == NULL)) dxpvec = dxmvec;
   if ((dxpvec != NULL) && (dxmvec == NULL)) dxmvec = dxpvec;
-  if (dxpvec != NULL) graphmode.etype |= 0x02;
+  if ((dxpvec != NULL) || (dxmvec != NULL)) graphmode.etype |= 0x02;
   
   /* find vectors */
Index: trunk/Ohana/src/opihi/cmd.data/rd.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/rd.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/rd.c	(revision 7080)
@@ -61,6 +61,6 @@
   /* find matrix, free old data */
   if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
 
   /* save file name */
@@ -73,5 +73,5 @@
   if (extend) {
     /* load in appropriate header */
-    Nskip = fits_read_Xheader (argv[2], &buf[0].header, Nextend);
+    Nskip = gfits_read_Xheader (argv[2], &buf[0].header, Nextend);
     if (!Nskip) {
       fprintf (stderr, "entry in %s not found\n", argv[2]);
@@ -113,5 +113,5 @@
     }
     fseek (f, Nskip, SEEK_SET);
-    status = fits_load_matrix (f, &buf[0].matrix, &buf[0].header);
+    status = gfits_load_matrix (f, &buf[0].matrix, &buf[0].header);
     fclose (f);
   } 
@@ -128,5 +128,5 @@
     done = FALSE;
     for (i = 0; !done; i++) {
-      Nskip = fits_read_Xheader (argv[2], &buf[0].header, i);
+      Nskip = gfits_read_Xheader (argv[2], &buf[0].header, i);
       if (!Nskip) {
 	fprintf (stderr, "extension %s in %s not found\n", ccdid, argv[2]);
@@ -135,5 +135,5 @@
 	return (FALSE);
       }
-      if (!fits_scan (&buf[0].header, CCDKeyword, "%s", 1, ID)) {
+      if (!gfits_scan (&buf[0].header, CCDKeyword, "%s", 1, ID)) {
 	fprintf (stderr, "%s not in header\n", CCDKeyword);
 	DeleteBuffer (buf);
@@ -145,5 +145,5 @@
       done = strnumcmp (ccdid, ID);
 
-      if (!done) fits_free_header (&buf[0].header);
+      if (!done) gfits_free_header (&buf[0].header);
     }
     free (CCDKeyword);
@@ -182,10 +182,10 @@
     }
     fseek (f, Nskip, SEEK_SET);
-    status = fits_load_matrix (f, &buf[0].matrix, &buf[0].header);
+    status = gfits_load_matrix (f, &buf[0].matrix, &buf[0].header);
     fclose (f);
   }
 
   if (!ccdsel && !extend) {
-    status = fits_read_header (argv[2], &buf[0].header);
+    status = gfits_read_header (argv[2], &buf[0].header);
     if (JustHead) {
       buf[0].header.Naxes = 0;
@@ -209,9 +209,9 @@
       buf[0].header.Naxis[2] = 0;
       buf[0].header.Naxes = 2;
-      fits_modify (&buf[0].header, "NAXIS", "%d", 1, 2);
-      fits_delete (&buf[0].header, "NAXIS3", 1);
+      gfits_modify (&buf[0].header, "NAXIS", "%d", 1, 2);
+      gfits_delete (&buf[0].header, "NAXIS3", 1);
     }
     sprintf (region, "-1 -1 -1 -1 %d %d", (plane - 1), plane);
-    status = fits_read_segment (argv[2], &buf[0].matrix, region);
+    status = gfits_read_segment (argv[2], &buf[0].matrix, region);
   }
 
@@ -236,5 +236,5 @@
 
   /** now - convert the matrix values to floats for internal use **/
-  fits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
+  gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
   
   return (TRUE);
Index: trunk/Ohana/src/opihi/cmd.data/rdseg.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/rdseg.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/rdseg.c	(revision 7080)
@@ -28,6 +28,6 @@
   /* find matrix, free old data */
   if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&buf[0].matrix);
-  fits_free_header (&buf[0].header);
+  gfits_free_matrix (&buf[0].matrix);
+  gfits_free_header (&buf[0].header);
 
   /* save file name */
@@ -36,9 +36,9 @@
   free (filename);
 
-  status = fits_read_header (argv[2], &buf[0].header);
+  status = gfits_read_header (argv[2], &buf[0].header);
   sprintf (region, "%d %d %d %d 0 1", x, nx + x, y, ny + y);
-  status = fits_read_segment (argv[2], &buf[0].matrix, region);
-  fits_modify (&buf[0].header, "NAXIS1", "%d", 1, nx);
-  fits_modify (&buf[0].header, "NAXIS2", "%d", 1, ny);
+  status = gfits_read_segment (argv[2], &buf[0].matrix, region);
+  gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, nx);
+  gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, ny);
   buf[0].header.Naxis[0] = nx;
   buf[0].header.Naxis[1] = ny;
@@ -66,5 +66,5 @@
 
   /** now - convert the matrix values to floats for internal use **/
-  fits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
+  gfits_convert_format (&buf[0].header, &buf[0].matrix, -32, 1.0, 0.0, FT_UNSIGN_MODE);
   
   return (TRUE);
Index: trunk/Ohana/src/opihi/cmd.data/read_vectors.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/read_vectors.c	(revision 7080)
@@ -171,10 +171,10 @@
 
     for (i = 0; i <= Nextend; i++) {
-      if (!fits_load_header (f, &header)) return (FALSE);
-      Nbytes = fits_matrix_size (&header);
+      if (!gfits_load_header (f, &header)) return (FALSE);
+      Nbytes = gfits_matrix_size (&header);
       /* skip the prior data buffers */
       if (i < Nextend) { 
 	fseek (f, Nbytes, SEEK_CUR);
-	fits_free_header (&header);
+	gfits_free_header (&header);
 	continue;
       }
@@ -183,6 +183,6 @@
       Nread = fread (table.buffer, sizeof (char), Nbytes, f);
       if (Nread != Nbytes) {
-	fits_free_table  (&table);
-	fits_free_header (&header);
+	gfits_free_table  (&table);
+	gfits_free_header (&header);
 	return (FALSE);
       }
@@ -190,10 +190,10 @@
     }
   } else {
-    if (!fits_fread_ftable (f, &table, extname)) return (FALSE);
+    if (!gfits_fread_ftable (f, &table, extname)) return (FALSE);
   }
 
   /* identify table type (ascii / binary) */
   Binary = FALSE;
-  fits_scan (&header, "XTENSION", "%s", 1, type);
+  gfits_scan (&header, "XTENSION", "%s", 1, type);
   if (!strcmp (type, "BINTABLE")) {
     Binary = TRUE;
@@ -214,9 +214,9 @@
     Nval = 0;
     if (Binary) {
-      if (!fits_get_bintable_column_type (&header, argv[i], type, &Nval)) return (FALSE);
-      if (!fits_get_bintable_column (&header, &table, argv[i], &data)) return (FALSE);
+      if (!gfits_get_bintable_column_type (&header, argv[i], type, &Nval)) return (FALSE);
+      if (!gfits_get_bintable_column (&header, &table, argv[i], &data)) return (FALSE);
     } else {
-      if (!fits_get_table_column_type (&header, argv[i], type)) return (FALSE);
-      if (!fits_get_table_column (&header, &table, argv[i], &data)) return (FALSE);
+      if (!gfits_get_table_column_type (&header, argv[i], type)) return (FALSE);
+      if (!gfits_get_table_column (&header, &table, argv[i], &data)) return (FALSE);
     }
     if (Nval == 0) return (FALSE);
@@ -276,6 +276,6 @@
     free (vec);
   }
-  fits_free_table (&table);
-  fits_free_header (&header);
+  gfits_free_table (&table);
+  gfits_free_header (&header);
   return (TRUE);
 }
Index: trunk/Ohana/src/opihi/cmd.data/rebin.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/rebin.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/rebin.c	(revision 7080)
@@ -40,6 +40,6 @@
   if ((in  = SelectBuffer (argv[1], OLDBUFFER, TRUE)) == NULL) return (FALSE);
   if ((out = SelectBuffer (argv[2], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&out[0].matrix);
-  fits_free_header (&out[0].header);
+  gfits_free_matrix (&out[0].matrix);
+  gfits_free_header (&out[0].header);
 
   scale  = atof (argv[3]);
@@ -71,10 +71,10 @@
   out[0].bscale = in[0].bscale;
   out[0].bzero  = in[0].bzero;
-  fits_copy_header (&in[0].header, &out[0].header);
-  fits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
-  fits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
-
-  status =  fits_scan (&out[0].header, "CDELT1", "%lf", 1, &dX);
-  status &= fits_scan (&out[0].header, "CDELT2", "%lf", 1, &dY);
+  gfits_copy_header (&in[0].header, &out[0].header);
+  gfits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
+  gfits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
+
+  status =  gfits_scan (&out[0].header, "CDELT1", "%lf", 1, &dX);
+  status &= gfits_scan (&out[0].header, "CDELT2", "%lf", 1, &dY);
   if (scale > 0) {
     dX *= scale;
@@ -85,10 +85,10 @@
   }    
   if (status) {
-    fits_modify (&out[0].header, "CDELT1", "%lf", 1, dX);
-    fits_modify (&out[0].header, "CDELT2", "%lf", 1, dY);
-  }
-
-  status =  fits_scan (&out[0].header, "CRPIX1", "%lf", 1, &dX);
-  status &= fits_scan (&out[0].header, "CRPIX2", "%lf", 1, &dY);
+    gfits_modify (&out[0].header, "CDELT1", "%lf", 1, dX);
+    gfits_modify (&out[0].header, "CDELT2", "%lf", 1, dY);
+  }
+
+  status =  gfits_scan (&out[0].header, "CRPIX1", "%lf", 1, &dX);
+  status &= gfits_scan (&out[0].header, "CRPIX2", "%lf", 1, &dY);
   if (scale > 0) {
     dX /= scale;
@@ -99,11 +99,11 @@
   }    
   if (status) {
-    fits_modify (&out[0].header, "CRPIX1", "%lf", 1, dX);
-    fits_modify (&out[0].header, "CRPIX2", "%lf", 1, dY);
+    gfits_modify (&out[0].header, "CRPIX1", "%lf", 1, dX);
+    gfits_modify (&out[0].header, "CRPIX2", "%lf", 1, dY);
   }
 
   out[0].header.Naxis[0] = nx;
   out[0].header.Naxis[1] = ny;
-  fits_create_matrix (&out[0].header, &out[0].matrix);
+  gfits_create_matrix (&out[0].header, &out[0].matrix);
   temp[0] = 0;
   if ((in[0].file[0] != '*') && (in[0].file[0] != '(')) {
Index: trunk/Ohana/src/opihi/cmd.data/rotate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/rotate.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/rotate.c	(revision 7080)
@@ -41,8 +41,8 @@
     buf[0].header.Naxis[0] = NY;
     buf[0].header.Naxis[1] = NX;
-    fits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
-    fits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
+    gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (i = NX - 1; i > -1; i--) {
@@ -52,24 +52,24 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = Yo;
     Y1 = NX - Xo;
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = pc21;
     PC12 = pc22;
     PC21 = -pc11;
     PC22 = -pc12;
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -80,8 +80,8 @@
     buf[0].header.Naxis[0] = NY;
     buf[0].header.Naxis[1] = NX;
-    fits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
-    fits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
+    gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (i = 0; i < NX; i++) {
@@ -91,17 +91,17 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = NY - Yo;
     Y1 = Xo;
     fprintf (stderr, "%f %f -> %f %f\n", Xo, Yo, X1, Y1);
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = -pc21;
     PC12 = -pc22;
@@ -110,8 +110,8 @@
     fprintf (stderr, "%f %f  ->  %f %f\n", pc11, pc12, PC11, PC12);
     fprintf (stderr, "%f %f  ->  %f %f\n", pc21, pc22, PC21, PC22);
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -120,6 +120,6 @@
 
   if (!strcasecmp (argv[2], "UPSIDE") || (atof (argv[2]) == -180) || (atof (argv[2]) == 180)) {
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (j = NY - 1; j > -1; j--) {
@@ -129,24 +129,24 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = NX - Xo;
     Y1 = NY - Yo;
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = -pc11;
     PC12 = -pc12;
     PC21 = -pc21;
     PC22 = -pc22;
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -155,6 +155,6 @@
 
   if (!strcasecmp (argv[2], "FLIPY")) {
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (j = NY - 1; j > -1; j--) {
@@ -164,24 +164,24 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = Xo;
     Y1 = NY - Yo;
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = pc11;
     PC12 = -pc12;
     PC21 = pc21;
     PC22 = -pc22;
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -190,6 +190,6 @@
 
   if (!strcasecmp (argv[2], "FLIPX")) {
-    fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
-    fits_create_matrix (&buf[0].header, &buf[0].matrix);
+    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
     for (j = 0; j < NY; j++) {
@@ -199,24 +199,24 @@
     }
     /* fix reference pixel */
-    fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-    fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+    gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+    gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
     X1 = NX - Xo;
     Y1 = Yo;
-    fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-    fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
-    
-    /* fix rotate matrix */
-    fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-    fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-    fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-    fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+    gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+    gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+    
+    /* fix rotate matrix */
+    gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+    gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+    gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+    gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
     PC11 = -pc11;
     PC12 = pc12;
     PC21 = -pc21;
     PC22 = pc22;
-    fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-    fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-    fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-    fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+    gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+    gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+    gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+    gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
     free (in_buff);
@@ -242,6 +242,6 @@
 
   /* fix reference pixel */
-  fits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
-  fits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
+  gfits_scan (&buf[0].header, "CRPIX1", "%lf", 1, &Xo);
+  gfits_scan (&buf[0].header, "CRPIX2", "%lf", 1, &Yo);
   /*
   X1 = (Xo - dX)*CosAngle - (Yo - dY)*SinAngle;
@@ -250,27 +250,27 @@
   X1 = Xo*CosAngle - Yo*SinAngle + dX;
   Y1 =  Xo*SinAngle + Yo*CosAngle + dY;
-  fits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
-  fits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
+  gfits_modify (&buf[0].header, "CRPIX1", "%lf", 1, X1);
+  gfits_modify (&buf[0].header, "CRPIX2", "%lf", 1, Y1);
 
   /* fix rotate matrix */
-  fits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
-  fits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
-  fits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
-  fits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
+  gfits_scan (&buf[0].header, "PC001001", "%lf", 1, &pc11);
+  gfits_scan (&buf[0].header, "PC001002", "%lf", 1, &pc12);
+  gfits_scan (&buf[0].header, "PC002001", "%lf", 1, &pc21);
+  gfits_scan (&buf[0].header, "PC002002", "%lf", 1, &pc22);
   PC11 = pc11*CosAngle - pc21*SinAngle;
   PC12 = pc12*CosAngle - pc22*SinAngle;
   PC21 = pc21*CosAngle + pc11*SinAngle;
   PC22 = pc22*CosAngle + pc12*SinAngle;
-  fits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
-  fits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
-  fits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
-  fits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
+  gfits_modify (&buf[0].header, "PC001001", "%le", 1, PC11);
+  gfits_modify (&buf[0].header, "PC001002", "%le", 1, PC12);
+  gfits_modify (&buf[0].header, "PC002001", "%le", 1, PC21);
+  gfits_modify (&buf[0].header, "PC002002", "%le", 1, PC22);
 
   buf[0].header.Naxis[0] = Lx;
   buf[0].header.Naxis[1] = Ly;
-  fits_modify (&buf[0].header, "NAXIS1", "%d", 1, Lx);
-  fits_modify (&buf[0].header, "NAXIS2", "%d", 1, Ly);
-  fits_create_matrix (&buf[0].header, &buf[0].matrix);
-  fits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+  gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, Lx);
+  gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, Ly);
+  gfits_create_matrix (&buf[0].header, &buf[0].matrix);
+  gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
   out_buff = (float *)buf[0].matrix.buffer;
   for (j = 0; j < Ly; j++) {
Index: trunk/Ohana/src/opihi/cmd.data/spline_apply.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/spline_apply.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/spline_apply.c	(revision 7080)
@@ -34,6 +34,6 @@
 
   /* create an output matrix buffer with desired nx, ny */
-  fits_free_matrix (&out[0].matrix);
-  fits_free_header (&out[0].header);
+  gfits_free_matrix (&out[0].matrix);
+  gfits_free_header (&out[0].header);
 
   out[0].bitpix = y1[0].bitpix;
@@ -41,11 +41,11 @@
   out[0].bscale = y1[0].bscale;
   out[0].bzero  = y1[0].bzero;
-  fits_copy_header (&y1[0].header, &out[0].header);
-  fits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
-  fits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
+  gfits_copy_header (&y1[0].header, &out[0].header);
+  gfits_modify (&out[0].header, "NAXIS1", "%d", 1, nx);
+  gfits_modify (&out[0].header, "NAXIS2", "%d", 1, ny);
 
   out[0].header.Naxis[0] = nx;
   out[0].header.Naxis[1] = ny;
-  fits_create_matrix (&out[0].header, &out[0].matrix);
+  gfits_create_matrix (&out[0].header, &out[0].matrix);
   if ((y1[0].file[0] != '*') && (y1[0].file[0] != '(')) {
     sprintf (out[0].file, "*%s", y1[0].file);
Index: trunk/Ohana/src/opihi/cmd.data/spline_construct.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/spline_construct.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/spline_construct.c	(revision 7080)
@@ -26,7 +26,7 @@
   out[0].bscale = in[0].bscale;
   out[0].bzero  = in[0].bzero;
-  fits_copy_matrix_info (&in[0].matrix, &out[0].matrix);
-  fits_copy_header (&in[0].header, &out[0].header);
-  fits_create_matrix (&out[0].header, &out[0].matrix);
+  gfits_copy_matrix_info (&in[0].matrix, &out[0].matrix);
+  gfits_copy_header (&in[0].header, &out[0].header);
+  gfits_create_matrix (&out[0].header, &out[0].matrix);
 
   xdir = FALSE;
Index: trunk/Ohana/src/opihi/cmd.data/style.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/style.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/style.c	(revision 7080)
@@ -1,68 +1,9 @@
 # include "data.h"
-# define NCOLORS 9
-static char colors[9][10] = {"black", "white", "red", "orange", "yellow", "green", "blue", "indigo", "violet"};
 
 int style (int argc, char **argv) {
   
-  int N, Ngraph;
   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 (argc == 1) {
-    fprintf (stderr, "current style (%d): -x %d -c %s -pt %d -lt %d -lw %f -sz %f\n", Ngraph,
-	     graphmode.style, colors[graphmode.color], graphmode.ptype, 
-	     graphmode.ltype, graphmode.lweight,
-	     graphmode.size);
-    return (TRUE);
-  }
-
-  if ((N = get_argument (argc, argv, "-lt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ltype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-lw"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.lweight = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-pt"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ptype = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "+eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = TRUE;
-  }
-  if ((N = get_argument (argc, argv, "-eb"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.ebar = FALSE;
-  }
-  if ((N = get_argument (argc, argv, "-sz"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.size = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-c"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.color = KapaColorByName (argv[N]);
-    if (graphmode.color == -1) return (FALSE);
-    remove_argument (N, &argc, argv);
-  }
-  if ((N = get_argument (argc, argv, "-x"))) {
-    remove_argument (N, &argc, argv);
-    graphmode.style = atof(argv[N]);
-    remove_argument (N, &argc, argv);
-  }
-
-  SetGraph (graphmode);
+  if (!style_args (&graphmode, &argc, argv, -1)) return FALSE;
 
   if (argc > 1) {
@@ -70,7 +11,6 @@
     return (FALSE);
   }
+  SetGraph (graphmode);
 
   return (TRUE);
-
 }
-
Index: trunk/Ohana/src/opihi/cmd.data/subraster.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/subraster.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/subraster.c	(revision 7080)
@@ -53,6 +53,6 @@
 
   if ((obuf = SelectBuffer (argv[2], ANYBUFFER, TRUE)) == NULL) return (FALSE);
-  fits_free_matrix (&obuf[0].matrix);
-  fits_free_header (&obuf[0].header);
+  gfits_free_matrix (&obuf[0].matrix);
+  gfits_free_header (&obuf[0].header);
 
   obuf[0].bitpix = ibuf[0].bitpix;
@@ -62,10 +62,10 @@
   /* strcpy (obuf[0].name, ibuf[0].name); */
   strcpy (obuf[0].file, ibuf[0].file);
-  fits_copy_header (&ibuf[0].header, &obuf[0].header);
-  fits_modify (&obuf[0].header, "NAXIS1", "%d", 1, Nx);
-  fits_modify (&obuf[0].header, "NAXIS2", "%d", 1, Ny);
+  gfits_copy_header (&ibuf[0].header, &obuf[0].header);
+  gfits_modify (&obuf[0].header, "NAXIS1", "%d", 1, Nx);
+  gfits_modify (&obuf[0].header, "NAXIS2", "%d", 1, Ny);
   obuf[0].header.Naxis[0] = Nx;
   obuf[0].header.Naxis[1] = Ny;
-  fits_create_matrix (&obuf[0].header, &obuf[0].matrix);
+  gfits_create_matrix (&obuf[0].header, &obuf[0].matrix);
 
   for (j = 0; j < ny; j++) {
Index: trunk/Ohana/src/opihi/cmd.data/svd.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/svd.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/svd.c	(revision 7080)
@@ -20,24 +20,24 @@
 
   /* U is Nx, Ny */
-  fits_free_matrix (&Mu[0].matrix);
-  fits_free_header (&Mu[0].header);
+  gfits_free_matrix (&Mu[0].matrix);
+  gfits_free_header (&Mu[0].header);
   Mu[0].bitpix = Ma[0].bitpix;
   Mu[0].unsign = Ma[0].unsign;
   Mu[0].bscale = Ma[0].bscale;
   Mu[0].bzero  = Ma[0].bzero;
-  fits_copy_header (&Ma[0].header, &Mu[0].header);
-  fits_create_matrix (&Mu[0].header, &Mu[0].matrix);
+  gfits_copy_header (&Ma[0].header, &Mu[0].header);
+  gfits_create_matrix (&Mu[0].header, &Mu[0].matrix);
   
   /* V is Nx, Nx */
-  fits_free_matrix (&Mv[0].matrix);
-  fits_free_header (&Mv[0].header);
+  gfits_free_matrix (&Mv[0].matrix);
+  gfits_free_header (&Mv[0].header);
   Mv[0].bitpix = Ma[0].bitpix;
   Mv[0].unsign = Ma[0].unsign;
   Mv[0].bscale = Ma[0].bscale;
   Mv[0].bzero  = Ma[0].bzero;
-  fits_copy_header (&Ma[0].header, &Mv[0].header);
-  fits_modify (&Mv[0].header, "NAXIS2", "%d", 1, Nx);
+  gfits_copy_header (&Ma[0].header, &Mv[0].header);
+  gfits_modify (&Mv[0].header, "NAXIS2", "%d", 1, Nx);
   Mv[0].header.Naxis[1] = Nx;
-  fits_create_matrix (&Mv[0].header, &Mv[0].matrix);
+  gfits_create_matrix (&Mv[0].header, &Mv[0].matrix);
 
   /* w is Nx */
Index: trunk/Ohana/src/opihi/cmd.data/vgrid.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vgrid.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/vgrid.c	(revision 7080)
@@ -50,6 +50,6 @@
   free (bf[0].header.buffer);  /* ALLOCATEd in SelectBuffer */
   free (bf[0].matrix.buffer);  /* ALLOCATEd in SelectBuffer */
-  fits_create_header (&bf[0].header);
-  fits_create_matrix (&bf[0].header, &bf[0].matrix);
+  gfits_create_header (&bf[0].header);
+  gfits_create_matrix (&bf[0].header, &bf[0].matrix);
 
   ALLOCATE (val, float, Nx*Ny);
Index: trunk/Ohana/src/opihi/cmd.data/wd.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/wd.c	(revision 6686)
+++ trunk/Ohana/src/opihi/cmd.data/wd.c	(revision 7080)
@@ -80,5 +80,5 @@
   memcpy (temp_header.buffer, buf[0].header.buffer, temp_header.size);
 
-  if (temp_header.Naxes) fits_convert_format (&temp_header, &temp_matrix, outBitpix, outScale, outZero, outUnsign);
+  if (temp_header.Naxes) gfits_convert_format (&temp_header, &temp_matrix, outBitpix, outScale, outZero, outUnsign);
 
   if (Extend) {
@@ -88,5 +88,5 @@
 
     /* assume failure means non-existent file */
-    if (!fits_read_header (argv[2], &Xhead)) {
+    if (!gfits_read_header (argv[2], &Xhead)) {
 
       Xhead.simple = TRUE;
@@ -99,16 +99,16 @@
       Xhead.unsign = FALSE;
       
-      fits_create_header (&Xhead);
-      fits_modify (&Xhead, "NEXTEND", "%d", 1, 0);
+      gfits_create_header (&Xhead);
+      gfits_modify (&Xhead, "NEXTEND", "%d", 1, 0);
       f = fopen (argv[2], "w");
       fclose (f);
     }
 
-    fits_modify (&Xhead, "EXTEND", "%t", 1, TRUE);
+    gfits_modify (&Xhead, "EXTEND", "%t", 1, TRUE);
 
     Nextend = 0;
-    fits_scan (&Xhead, "NEXTEND", "%d", 1, &Nextend);
+    gfits_scan (&Xhead, "NEXTEND", "%d", 1, &Nextend);
     Nextend ++;
-    fits_modify (&Xhead, "NEXTEND", "%d", 1, Nextend);
+    gfits_modify (&Xhead, "NEXTEND", "%d", 1, Nextend);
 
     /* write the main header to the start of the file */
@@ -149,5 +149,5 @@
     }
     /* write the matrix buffer (automatically goes to end of file */
-    if (!fits_write_matrix (argv[2], &temp_matrix)) {
+    if (!gfits_write_matrix (argv[2], &temp_matrix)) {
       fprintf (stderr, "failed to write file\n");
       status = FALSE;
@@ -156,27 +156,27 @@
     status = TRUE;
   done1:
-    fits_free_header (&Xhead);
-    fits_free_header (&temp_header);
-    fits_free_matrix (&temp_matrix);
+    gfits_free_header (&Xhead);
+    gfits_free_header (&temp_header);
+    gfits_free_matrix (&temp_matrix);
     return (status);
   }
   
   /* the actual write-to-disk goes here */
-  if (!fits_write_header (argv[2], &temp_header)) {
+  if (!gfits_write_header (argv[2], &temp_header)) {
     fprintf (stderr, "failed to write header\n");
-    fits_free_header (&temp_header);
-    fits_free_matrix (&temp_matrix);
+    gfits_free_header (&temp_header);
+    gfits_free_matrix (&temp_matrix);
     return (FALSE);
   }
   
-  if (!fits_write_matrix (argv[2], &temp_matrix)) {
+  if (!gfits_write_matrix (argv[2], &temp_matrix)) {
     fprintf (stderr, "failed to write matrix\n");
-    fits_free_header (&temp_header);
-    fits_free_matrix (&temp_matrix);
+    gfits_free_header (&temp_header);
+    gfits_free_matrix (&temp_matrix);
     return (FALSE);
   }
 
-  fits_free_header (&temp_header);
-  fits_free_matrix (&temp_matrix);
+  gfits_free_header (&temp_header);
+  gfits_free_matrix (&temp_matrix);
   
   return (TRUE);
