Index: /trunk/Ohana/src/misc/src/fhead.c
===================================================================
--- /trunk/Ohana/src/misc/src/fhead.c	(revision 2447)
+++ /trunk/Ohana/src/misc/src/fhead.c	(revision 2448)
@@ -9,5 +9,5 @@
 
   Extend = FALSE;
-  if (N = get_argument (argc, argv, "-x")) {
+  if ((N = get_argument (argc, argv, "-x"))) {
     Extend = TRUE;
     remove_argument (N, &argc, argv);
@@ -38,6 +38,4 @@
 
   }
-
+  exit (0);
 }
-
-
Index: /trunk/Ohana/src/misc/src/fields.c
===================================================================
--- /trunk/Ohana/src/misc/src/fields.c	(revision 2447)
+++ /trunk/Ohana/src/misc/src/fields.c	(revision 2448)
@@ -1,36 +1,13 @@
-# include <stdio.h>
-# include <fitsio.h>
-# include <math.h>
-# include <malloc.h>
-# include <string.h>
-# include <sys/time.h>
-# include <stdarg.h>
-# include <stdlib.h>
-# include <readline/readline.h>
-# include <readline/history.h>
+# include <ohana.h>
 
-# define TRUE (1)
-# define FALSE (0)
-# define SIGN(X)  (((X) == 0) ? 0 : ((fabs((double)(X))) / (X)))
-# define ROUND(X) ((int) ((X) + 0.5*SIGN(X)))
-# define SQR(X)   (double) (((double)(X))*((double)(X)))
-# define SQ(X)    (double) (((double)(X))*((double)(X)))
-# define MIN(X,Y) ((X) < (Y) ? (X) : (Y))
-# define MAX(X,Y) ((X) > (Y) ? (X) : (Y))
-# define SWAP(X,Y) {double tmp=(X); (X) = (Y); (Y) = tmp;}
-# define ISVAR(a) (isalnum (a) || (a == '.') || (a == '_'))
-# define ISWORD(a,q) ((q) ? (a != '"') : (isalnum(a) || (a == '.') || (a == '_') || (a == '-')))
-# define ISNUM(c) (isdigit(c) || (c == '-') || (c == '.'))
+int main (int argc, char **argv) {
 
-main (int argc, char **argv) {
-
-  int i, j, nbytes;
+  int i;
   Header header;
   char filename[1000], buffer[1000];
-  char *p;
   int N, Extend, Nextend, status, GotFile, GotField;
 
   Extend = FALSE;
-  if (N = get_argument (argc, argv, "-x")) {
+  if ((N = get_argument (argc, argv, "-x"))) {
     Extend = TRUE;
     remove_argument (N, &argc, argv);
@@ -68,9 +45,6 @@
   }
 
-  if (GotFile && GotField) exit (0);
-  if (GotFile) exit (2);
-  exit (1);
-
+  if (!GotFile) exit (1);
+  if (!GotField) exit (2);
+  exit (0);
 }
-
-
Index: /trunk/Ohana/src/misc/src/gtfringetable.c
===================================================================
--- /trunk/Ohana/src/misc/src/gtfringetable.c	(revision 2447)
+++ /trunk/Ohana/src/misc/src/gtfringetable.c	(revision 2448)
@@ -1,8 +1,8 @@
 # include <ohana.h>
-static char *version = "gtfringetable $Revision: 1.1 $";
+static char *version = "gtfringetable $Revision: 1.2 $";
 
-int get_version (int argc, char **argv, char *version);
+void get_version (int argc, char **argv, char *version);
 
-void main (int argc, char **argv) {
+int main (int argc, char **argv) {
 
   int i;
@@ -34,8 +34,8 @@
   fclose (f);
 
-  fits_get_table_column (&header, &table, "X_MIN", &xmin);
-  fits_get_table_column (&header, &table, "X_MAX", &xmax);
-  fits_get_table_column (&header, &table, "Y_MIN", &ymin);
-  fits_get_table_column (&header, &table, "Y_MAX", &ymax);
+  fits_get_table_column (&header, &table, "X_MIN", (void **) &xmin);
+  fits_get_table_column (&header, &table, "X_MAX", (void **) &xmax);
+  fits_get_table_column (&header, &table, "Y_MIN", (void **) &ymin);
+  fits_get_table_column (&header, &table, "Y_MAX", (void **) &ymax);
 
   for (i = 0; i < header.Naxis[1]; i++) {
@@ -43,9 +43,9 @@
     fprintf (stdout, "%f %f\n", xmax[i] / binning, ymax[i] / binning);
   }
-
+  exit (0);
 }
 
 /**** support functions ******/
-int get_version (int argc, char **argv, char *version) {
+void get_version (int argc, char **argv, char *version) {
 
   int N;
Index: /trunk/Ohana/src/misc/src/mkfringetable.c
===================================================================
--- /trunk/Ohana/src/misc/src/mkfringetable.c	(revision 2447)
+++ /trunk/Ohana/src/misc/src/mkfringetable.c	(revision 2448)
@@ -1,17 +1,17 @@
 # include <ohana.h>
-static char *version = "mkfringetable $Revision: 1.2 $";
-
-int get_version (int argc, char **argv, char *version);
+static char *version = "mkfringetable $Revision: 1.3 $";
+
+void get_version (int argc, char **argv, char *version);
 char *sec_to_date (unsigned long second);
 
-void main (int argc, char **argv) {
+int main (int argc, char **argv) {
 
   int i, j, Npts, NPTS, Nccd, status;
-  char *layout;
+  char *layout, *config, *file;
   char filter[64], start[64], stop[64], camera[64], *datestr;
+  char ImagetypeKeyword[64], CCDnumKeyword[64], FilterKeyword[64], CameraKeyword[64];
   char *row, line[512], field[64], extname[64], filename[512];
   double x, y, *xmin, *xmax, *ymin, *ymax;
   FILE *f, *g;
-  int s1, s2;
 
   Header header, theader;
@@ -20,4 +20,20 @@
 
   get_version (argc, argv, version);
+
+  /*** load ptolemy/elixir configuration info ***/
+  file = SelectConfigFile (&argc, argv, "ptolemy");
+  config = LoadConfigFile (file);
+  if (config == (char *) NULL) {
+    fprintf (stderr, "ERROR: can't find configuration file %s\n", file);
+    if (file != (char *) NULL) free (file);
+    exit (0);
+  }
+  ScanConfig (config, "IMAGETYPE-KEYWORD",           "%s", 0, ImagetypeKeyword);
+  ScanConfig (config, "CCDNUM-KEYWORD",              "%s", 0, CCDnumKeyword);
+  ScanConfig (config, "FILTER-KEYWORD",              "%s", 0, FilterKeyword);
+  ScanConfig (config, "CAMERA-KEYWORD",              "%s", 0, CameraKeyword);
+  free (config);
+  free (file);
+
   if (argc != 3) {
     fprintf (stderr, "USAGE: (layout) (output)\n");
@@ -65,12 +81,12 @@
   fits_create_matrix (&header, &matrix);
   
-  fits_modify (&header, "NEXTEND", "%d", 1, Nccd);
-  fits_modify (&header, "DATE",    "%s", 1, datestr);
-  fits_modify (&header, "FILTER",  "%s", 1, filter);
-  fits_modify (&header, "CAMERA",  "%s", 1, camera);
-  fits_modify (&header, "TVSTART", "%s", 1, start);
-  fits_modify (&header, "TVSTOP",  "%s", 1, stop);
-  fits_modify (&header, "IMAGETYP", "%s", 1, "FRINGEPT");
-  fits_modify (&header, "VERSION", "%s", 1, version);
+  fits_modify (&header, "NEXTEND",        "%d", 1, Nccd);
+  fits_modify (&header, "DATE",           "%s", 1, datestr);
+  fits_modify (&header, "TVSTART",        "%s", 1, start);
+  fits_modify (&header, "TVSTOP",         "%s", 1, stop);
+  fits_modify (&header, "VERSION",        "%s", 1, version);
+  fits_modify (&header, CameraKeyword,    "%s", 1, camera);
+  fits_modify (&header, ImagetypeKeyword, "%s", 1, "FRPTS");
+  fits_modify (&header, FilterKeyword,    "%s", 1, filter);
     
   fits_fwrite_header  (g, &header);
@@ -130,16 +146,18 @@
       
     /* add current date/time to header */
-    fits_modify (&theader, "DATE",    "%s", 1, datestr);
-    fits_modify (&theader, "FILTER",  "%s", 1, filter);
-    fits_modify (&theader, "CAMERA",  "%s", 1, camera);
-    fits_modify (&theader, "TVSTART", "%s", 1, start);
-    fits_modify (&theader, "TVSTOP",  "%s", 1, stop);
-    fits_modify (&theader, "IMAGETYP", "%s", 1, "FRINGEPT");
-
+    fits_modify (&theader, "DATE",          "%s", 1, datestr);
+    fits_modify (&theader, "TVSTART",       "%s", 1, start);
+    fits_modify (&theader, "TVSTOP",        "%s", 1, stop);
+    fits_modify (&header, CameraKeyword,    "%s", 1, camera);
+    fits_modify (&header, ImagetypeKeyword, "%s", 1, "FRPTS");
+    fits_modify (&header, FilterKeyword,    "%s", 1, filter);
+    fits_modify (&header, CCDnumKeyword,    "%s", 1, extname);
+    
+    
     /* define table layout */
-    fits_define_table_column (&theader, "F6.1", "X_MIN", "min couple x", "pixels", 1.0, 0.0); 
-    fits_define_table_column (&theader, "F6.1", "Y_MIN", "min couple y", "pixels", 1.0, 0.0); 
-    fits_define_table_column (&theader, "F6.1", "X_MAX", "max couple x", "pixels", 1.0, 0.0); 
-    fits_define_table_column (&theader, "F6.1", "Y_MAX", "max couple y", "pixels", 1.0, 0.0); 
+    fits_define_table_column (&theader, "F6.1", "X_MIN", "min couple x", "pixels"); 
+    fits_define_table_column (&theader, "F6.1", "Y_MIN", "min couple y", "pixels"); 
+    fits_define_table_column (&theader, "F6.1", "X_MAX", "max couple x", "pixels"); 
+    fits_define_table_column (&theader, "F6.1", "Y_MAX", "max couple y", "pixels"); 
     
     /* create table, add data values */
@@ -154,4 +172,5 @@
     fits_fwrite_table   (g, &table);
   }
+  exit (0);
 }
 
@@ -166,8 +185,7 @@
   sprintf (line, "%4d/%02d/%02d,%02d:%02d:%02d", 1900+gmt[0].tm_year, gmt[0].tm_mon+1, gmt[0].tm_mday, gmt[0].tm_hour, gmt[0].tm_min, gmt[0].tm_sec); 
   return (line);
-
 }
 
-int get_version (int argc, char **argv, char *version) {
+void get_version (int argc, char **argv, char *version) {
 
   int N;
