Index: trunk/Ohana/src/opihi/cmd.astro/cplot.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.astro/cplot.c	(revision 21086)
+++ trunk/Ohana/src/opihi/cmd.astro/cplot.c	(revision 21153)
@@ -75,4 +75,5 @@
   }
   Xvec.Nelements = Npts;
+  Yvec.Nelements = Npts;
 
   graphmode.etype = 0;
Index: trunk/Ohana/src/opihi/dvo/dbExtractAverages.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dbExtractAverages.c	(revision 21086)
+++ trunk/Ohana/src/opihi/dvo/dbExtractAverages.c	(revision 21153)
@@ -152,9 +152,7 @@
 	  break;
 	case MAG_CHISQ:
-	  // GetPhotcodeEquivCodebyCode (field->photcode)
 	  value.Flt = PhotXm (field->photcode, average, secfilt);
 	  break;
 	case MAG_ERR:
-	  // GetPhotcodeEquivCodebyCode (field->photcode)
 	  if ((field->photcode->type == PHOT_REF) || (field->photcode->type == PHOT_DEP)) {
 	    for (i = 0; i < average[0].Nmeasure; i++) {
@@ -167,4 +165,15 @@
 	  }
 	  break;
+	case MAG_PHOT_FLAGS:
+	  if ((field->photcode->type == PHOT_REF) || (field->photcode->type == PHOT_DEP)) {
+	    for (i = 0; i < average[0].Nmeasure; i++) {
+	      if (field->photcode->code != measure[i].photcode) continue;
+	      value.Int = measure[i].photFlags;
+	      break;
+	    }
+	  } else {
+	    value.Int = 0;
+	  }
+	  break;
 	case MAG_NCODE:
 	  // XXX push these into dvo_photcode_ops APIs
Index: trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 21086)
+++ trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 21153)
@@ -123,4 +123,11 @@
 	  } else {
 	    value.Flt = measure[0].dM;
+	  }
+	  break;
+	case MAG_PHOT_FLAGS:
+	  if ((field->photcode->type == PHOT_REF) || (field->photcode->type == PHOT_DEP)) {
+	    value.Int = measure[0].photFlags;
+	  } else {
+	    value.Int = 0;
 	  }
 	  break;
@@ -378,6 +385,8 @@
       break;
     case MEAS_OBJ_ID: /* OK */
-      // XXX this should probably return average[0].objID
       value.Int = average[0].objID;
+      break;
+    case MEAS_CAT_ID: /* OK */
+      value.Int = average[0].catID;
       break;
     case MEAS_IMAGE_ID: /* OK */
Index: trunk/Ohana/src/opihi/dvo/dbFields.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/dbFields.c	(revision 21086)
+++ trunk/Ohana/src/opihi/dvo/dbFields.c	(revision 21153)
@@ -30,15 +30,16 @@
 int GetMagMode (char *string) {
 
-  if (!strcasecmp (string, "inst"))  return (MAG_INST);
-  if (!strcasecmp (string, "cat"))   return (MAG_CAT);
-  if (!strcasecmp (string, "sys"))   return (MAG_SYS);
-  if (!strcasecmp (string, "rel"))   return (MAG_REL);
-  if (!strcasecmp (string, "cal"))   return (MAG_CAL);
-  if (!strcasecmp (string, "ave"))   return (MAG_AVE);
-  if (!strcasecmp (string, "ref"))   return (MAG_REF);
-  if (!strcasecmp (string, "err"))   return (MAG_ERR);
-  if (!strcasecmp (string, "chisq")) return (MAG_CHISQ);
-  if (!strcasecmp (string, "ncode")) return (MAG_NCODE);
-  if (!strcasecmp (string, "nphot")) return (MAG_NPHOT);
+  if (!strcasecmp (string, "inst"))  	 return (MAG_INST);
+  if (!strcasecmp (string, "cat"))   	 return (MAG_CAT);
+  if (!strcasecmp (string, "sys"))   	 return (MAG_SYS);
+  if (!strcasecmp (string, "rel"))   	 return (MAG_REL);
+  if (!strcasecmp (string, "cal"))   	 return (MAG_CAL);
+  if (!strcasecmp (string, "ave"))   	 return (MAG_AVE);
+  if (!strcasecmp (string, "ref"))   	 return (MAG_REF);
+  if (!strcasecmp (string, "err"))   	 return (MAG_ERR);
+  if (!strcasecmp (string, "photflags")) return (MAG_PHOT_FLAGS);
+  if (!strcasecmp (string, "chisq")) 	 return (MAG_CHISQ);
+  if (!strcasecmp (string, "ncode")) 	 return (MAG_NCODE);
+  if (!strcasecmp (string, "nphot")) 	 return (MAG_NPHOT);
   return (MAG_NONE);
 }
@@ -75,12 +76,10 @@
   }
 
-
   // enforce compatibility
-  // XXX this is kind of poorly done
-  if ((code[0].type == PHOT_REF) && (*mode != MAG_ERR)) {
-    *mode = MAG_CAT;
-  }
-  if (code[0].type == PHOT_DEP) {
-    if (useDefault) {
+  if (useDefault) {
+    if (code[0].type == PHOT_REF) {
+      *mode = MAG_CAT;
+    }
+    if (code[0].type == PHOT_DEP) {
       *mode = MAG_REL;
     }
@@ -186,4 +185,5 @@
   if (!strcasecmp (fieldName, "DETID"))      ESCAPE (MEAS_DET_ID,     	  MAG_NONE, OPIHI_INT);
   if (!strcasecmp (fieldName, "OBJID"))      ESCAPE (MEAS_OBJ_ID,     	  MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "CATID"))      ESCAPE (MEAS_CAT_ID,     	  MAG_NONE, OPIHI_INT);
   if (!strcasecmp (fieldName, "IMAGEID"))    ESCAPE (MEAS_IMAGE_ID,       MAG_NONE, OPIHI_INT);
   if (!strcasecmp (fieldName, "PSF_QF"))     ESCAPE (MEAS_PSF_QF,     	  MAG_NONE, OPIHI_FLT);
@@ -206,5 +206,14 @@
   field->ID = MEAS_MAG;
   field->magMode = mode;
-  field->type = OPIHI_FLT;
+  switch (mode) {
+    case MAG_NCODE:
+    case MAG_NPHOT:
+    case MAG_PHOT_FLAGS:
+      field->type = OPIHI_INT;
+      break;
+    default:
+      field->type = OPIHI_FLT;
+      break;
+  }
   field->photcode = code;
   return (TRUE);
@@ -280,5 +289,14 @@
   field->ID = AVE_MAG;
   field->magMode = mode;
-  field->type = OPIHI_FLT;
+  switch (mode) {
+    case MAG_NCODE:
+    case MAG_NPHOT:
+    case MAG_PHOT_FLAGS:
+      field->type = OPIHI_INT;
+      break;
+    default:
+      field->type = OPIHI_FLT;
+      break;
+  }
   field->photcode = code;
   return (TRUE);
Index: trunk/Ohana/src/opihi/dvo/gimages.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/gimages.c	(revision 21086)
+++ trunk/Ohana/src/opihi/dvo/gimages.c	(revision 21153)
@@ -103,10 +103,78 @@
     if (!FindMosaicForImage (image, Nimage, i)) continue;
 
+    typehash = wordhash (&image[i].coords.ctype[4]);
+
+    // for non-linear astrometry solutions, a point which is far from the image may
+    // potentially appear to land in the image: at large field-position, the high order
+    // terms which are supposed to be perturbations may dominate the solution
+
+    // XXX this code checks if the image is even in the ballpark.  this is not a great
+    // solution.  the better way to do this would be to use the linear portions of the fit
+    // only for RD_to_XY, then see if the result is close.
+    { 
+      Coords local;
+      double Ro, Do, Xo, Yo, Xs, Ys, Xe, Ye, Radius;
+      
+      if (typehash == DistortImage) {
+	Xo = 0.0;
+	Yo = 0.0;
+      } else {
+	Xo = 0.5*image[i].NX;
+	Yo = 0.5*image[i].NY;
+      }
+
+      XY_to_RD (&Ro, &Do, Xo, Yo, &image[i].coords);
+
+      local.crval1 = Ro;
+      local.crval2 = Do;
+      local.crpix1 = local.crpix2 = 0.0;
+      local.cdelt1 = local.cdelt2 = 1.0/3600.0;
+      local.pc1_1 = local.pc2_2 = 1.0;
+      local.pc2_1 = local.pc1_2 = 0.0;
+      local.Npolyterms = 1;
+      strcpy (local.ctype, "RA---TAN");
+
+      if (typehash == DistortImage) {
+	Xs = -0.5*image[i].NX;
+	Ys = -0.5*image[i].NY;
+	Xe = +0.5*image[i].NX;
+	Ye = +0.5*image[i].NY;
+      } else {
+	Xs = 0.0;
+	Ys = 0.0;
+	Xe = image[i].NX;
+	Ye = image[i].NY;
+      }
+      
+      XY_to_RD (&Ro, &Do, Xs, Ys, &image[i].coords);
+      RD_to_XY (&Xo, &Xo, Ro, Do, &local);
+      Radius = hypot (Xo, Yo);
+      // fprintf (stderr, "%s: %f %f    %f ", image[i].name, local.crval1, local.crval2, Radius);
+
+      XY_to_RD (&Ro, &Do, Xs, Ye, &image[i].coords);
+      RD_to_XY (&Xo, &Xo, Ro, Do, &local);
+      Radius = MAX (Radius, hypot (Xo, Yo));
+      // fprintf (stderr, "%f ", Radius);
+
+      XY_to_RD (&Ro, &Do, Xe, Ys, &image[i].coords);
+      RD_to_XY (&Xo, &Xo, Ro, Do, &local);
+      Radius = MAX (Radius, hypot (Xo, Yo));
+      // fprintf (stderr, "%f ", Radius);
+
+      XY_to_RD (&Ro, &Do, Xe, Ye, &image[i].coords);
+      RD_to_XY (&Xo, &Xo, Ro, Do, &local);
+      Radius = MAX (Radius, hypot (Xo, Yo));
+      // fprintf (stderr, "%f ", Radius);
+
+      RD_to_XY (&Xo, &Yo, Ra, Dec, &local);
+      // fprintf (stderr, " : %f\n", hypot(Xo,Yo));
+      if (hypot(Xo,Yo) > 1.5*Radius) continue;
+      // fprintf (stderr, " ** try me **\n");
+    }
+
     status = RD_to_XY (&X, &Y, Ra, Dec, &image[i].coords);
     if (!finite(X)) continue;
     if (!finite(Y)) continue;
     if (!status) continue;
-
-    typehash = wordhash (&image[i].coords.ctype[4]);
 
     if (typehash == DistortImage) {
Index: trunk/Ohana/src/opihi/dvo/skycoverage.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/skycoverage.c	(revision 21086)
+++ trunk/Ohana/src/opihi/dvo/skycoverage.c	(revision 21153)
@@ -1,9 +1,12 @@
 # include "dvoshell.h"
+
+int wordhash (char *word);
 
 int skycoverage (int argc, char **argv) {
 
+  int WITH_MOSAIC, SOLO_MOSAIC;
   int i, N, Nimage, status, TimeSelect, ByName, xs, ys;
   time_t tzero, tend;
-  double pixscale, dPix, r, d, Xi, Yi, Xs, Ys, x[2], y[2], trange;
+  double pixscale, dX, dY, Npts, r, d, Xi, Yi, Xs, Ys, x[2], y[2], trange, RaCenter;
   Image *image;
   char name[256];
@@ -12,4 +15,25 @@
   Buffer *buf;
   Coords coords;
+  int typehash;
+
+  WITH_MOSAIC = FALSE;
+  if ((N = get_argument (argc, argv, "+mosaic"))) {
+    remove_argument (N, &argc, argv);
+    WITH_MOSAIC = TRUE;
+  }
+
+  SOLO_MOSAIC = FALSE;
+  if ((N = get_argument (argc, argv, "-mosaic"))) {
+    remove_argument (N, &argc, argv);
+    SOLO_MOSAIC = TRUE;
+    WITH_MOSAIC = TRUE;
+  }
+
+  RaCenter = 0.0;
+  if ((N = get_argument (argc, argv, "-ra-center"))) {
+    remove_argument (N, &argc, argv);
+    RaCenter = atof (argv[N]);
+    remove_argument (N, &argc, argv);
+  }
 
   ByName = FALSE;
@@ -61,7 +85,8 @@
  
   if (argc != 4) {
-    gprint (GP_ERR, "USAGE: skycoverage (buffer) (pixscale) (dPix) [-time start range] [-name name]\n");
+    gprint (GP_ERR, "USAGE: skycoverage (buffer) (pixscale) (Npts) [-time start range] [-name name]\n");
     gprint (GP_ERR, "       (buffer) saves bitmapped AIT plot\n");
     gprint (GP_ERR, "       (pixscale) specifies the pixel size in degrees\n");
+    gprint (GP_ERR, "       (Npts) gives the number of test points per image in each dimension\n");
     gprint (GP_ERR, "       note: we need 64800 / (pixscale)^2 pixels to represent the sky\n");
     return (FALSE);
@@ -70,5 +95,5 @@
   if ((buf = SelectBuffer (argv[1], ANYBUFFER, TRUE)) == NULL) return (FALSE);
   pixscale = atof(argv[2]);
-  dPix     = atof(argv[3]);
+  Npts     = atof(argv[3]);
 
   Nx = 360/pixscale;
@@ -80,11 +105,13 @@
   strcpy (buf[0].file, "(empty)");
 
-  coords.crval1 = 180;
+  coords.crval1 = RaCenter;
   coords.crval2 = 0;
   coords.crpix1 = 0.5*Nx;
   coords.crpix2 = 0.5*Ny;
   strcpy (coords.ctype, "DEC--AIT");
-  coords.pc1_1 = coords.pc2_2 = 1;
-  coords.pc1_2 = coords.pc2_1 = 0;
+  coords.pc1_1 = -1.0;
+  coords.pc2_2 = +1.0;
+  coords.pc1_2 =  0.0;
+  coords.pc2_1 =  0.0;
   coords.cdelt1 = coords.cdelt2 = pixscale;
   coords.Npolyterms = 0;
@@ -109,8 +136,16 @@
   }
 
+  int DistortImage = wordhash ("-DIS");
+
   for (i = 0; i < Nimage; i++) {
     if (ByName && strcmp (name, image[i].name)) continue;
     if (TimeSelect && ((image[i].tzero < tzero) || (image[i].tzero+image[i].trate*image[i].NY > tzero + trange))) continue;
     if (!FindMosaicForImage (image, Nimage, i)) continue;
+
+    typehash = wordhash (&image[i].coords.ctype[4]);
+
+    /* DIS images represent a field, not a chip */
+    if ((typehash == DistortImage) && !WITH_MOSAIC) continue;
+    if ((typehash != DistortImage) &&  SOLO_MOSAIC) continue;
 
     /* project this image to screen display coords */
@@ -125,9 +160,16 @@
     status = FALSE;
     
-    for (Yi = y[0] + 0.5*dPix; Yi < y[1]; Yi += dPix) {
-      for (Xi = x[0] + 0.5*dPix; Xi < x[1]; Xi += dPix) {
+    dX = (x[1] - x[0]) / Npts;
+    dY = (y[1] - y[0]) / Npts;
+    
+    for (Yi = y[0] + 0.5*dY; Yi < y[1]; Yi += dY) {
+      for (Xi = x[0] + 0.5*dX; Xi < x[1]; Xi += dX) {
 	XY_to_RD (&r, &d, Xi, Yi, &image[i].coords);
 	r = ohana_normalize_angle (r);
 	status = RD_to_XY (&Xs, &Ys, r, d, &coords);
+	if (Xs < 0) continue;
+	if (Ys < 0) continue;
+	if (Xs >= Nx) continue;
+	if (Ys >= Ny) continue;
 	if (status) {
 	  xs = (int)Xs;
Index: trunk/Ohana/src/opihi/include/astro.h
===================================================================
--- trunk/Ohana/src/opihi/include/astro.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/astro.h	(revision 21153)
@@ -9,6 +9,6 @@
 # define ASTRO_H
 
-void InitAstro ();
-void FreeAstro ();
+void InitAstro (void);
+void FreeAstro (void);
 
 typedef struct {
Index: trunk/Ohana/src/opihi/include/basic.h
===================================================================
--- trunk/Ohana/src/opihi/include/basic.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/basic.h	(revision 21153)
@@ -3,6 +3,6 @@
 # include "dvomath.h"
 
-void cleanup ();
-void InitBasic ();
-void FreeBasic ();
-void InitBasic_PantasksClient ();
+void cleanup (void);
+void InitBasic (void);
+void FreeBasic (void);
+void InitBasic_PantasksClient (void);
Index: trunk/Ohana/src/opihi/include/data.h
===================================================================
--- trunk/Ohana/src/opihi/include/data.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/data.h	(revision 21153)
@@ -33,9 +33,9 @@
 } Book;
 
-void InitData ();
-void FreeData ();
+void InitData (void);
+void FreeData (void);
 
 /* in book.c */
-void InitBooks ();
+void InitBooks (void);
 void InitBook (Book *book, char *name);
 void FreeBook (Book *book);
@@ -44,5 +44,5 @@
 Book *CreateBook (char *name);
 int DeleteBook (Book *book);
-void ListBooks ();
+void ListBooks (void);
 
 /* in page.c */
@@ -61,6 +61,6 @@
 
 /* in queues.c */
-void InitQueues ();
-void ListQueues ();
+void InitQueues (void);
+void ListQueues (void);
 Queue *FindQueue (char *name);
 Queue *CreateQueue (char *name);
@@ -151,12 +151,12 @@
 int read_table_vectors (int argc, char **argv, char *extname);
 
-void *db_getConnection ();
+void *db_getConnection (void);
 
 int bracket (double *list, int Nlist, int mode, double value);
 int ibracket (int *list, int Nlist, int mode, double value);
 
-void FreeKapa ();
-void FreeQueues ();
-void FreeBooks ();
+void FreeKapa (void);
+void FreeQueues (void);
+void FreeBooks (void);
 
 # endif
Index: trunk/Ohana/src/opihi/include/dimm.h
===================================================================
--- trunk/Ohana/src/opihi/include/dimm.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/dimm.h	(revision 21153)
@@ -6,5 +6,5 @@
 # include "sbig.h"
 
-void InitDIMM ();
+void InitDIMM (void);
 
 /* telescope.c */
@@ -19,7 +19,7 @@
 int setTime (char *lst);
 int getSite (double *lon, double *lat, double *lst);
-int ParkScope();
-int SleepScope();
-int WakeScope();
+int ParkScope(void);
+int SleepScope(void);
+int WakeScope(void);
 
 /* Serial.c */
@@ -36,14 +36,14 @@
 /* camera.c */
 int InitCamera (int port);
-void DumpCameraInfo ();
+void DumpCameraInfo (void);
 void CameraFullSize (int *x, int *y);
 int SetTemperature (double temp);
-double GetTemperature ();
-int DumpCameraStatus ();
+double GetTemperature (void);
+int DumpCameraStatus (void);
 int Exposure (double exptime);
 static int readout_callback (float percent);
 int ReadOut (int x, int y, int dx, int dy, int binning, unsigned short *buffer);
-int OpenShutter ();
-int CloseShutter ();
+int OpenShutter (void);
+int CloseShutter (void);
 
   /* this image structure stuff is considered for further development */ 
Index: trunk/Ohana/src/opihi/include/display.h
===================================================================
--- trunk/Ohana/src/opihi/include/display.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/display.h	(revision 21153)
@@ -20,6 +20,6 @@
 int           SetImage              PROTO((KapaImageData *data));
 
-void	      QuitKapa              PROTO(());
-void	      InitKapa		    PROTO(());
+void	      QuitKapa              PROTO((void));
+void	      InitKapa		    PROTO((void));
 int 	      open_kapa		    PROTO((int entry));
 int 	      close_kapa	    PROTO((char *name));
@@ -27,5 +27,5 @@
 int 	      DelKapaDevice	    PROTO((char *name));
 int 	      FindKapaDevice	    PROTO((char *name));
-char	     *GetKapaName	    PROTO(());
+char	     *GetKapaName	    PROTO((void));
 
 /* calling program need to define a function 'get_variable' which
Index: trunk/Ohana/src/opihi/include/dvoshell.h
===================================================================
--- trunk/Ohana/src/opihi/include/dvoshell.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/dvoshell.h	(revision 21153)
@@ -33,4 +33,5 @@
       MAG_REF, 
       MAG_ERR, 
+      MAG_PHOT_FLAGS, 
       MAG_CHISQ,
       MAG_NCODE,
@@ -99,4 +100,5 @@
       MEAS_DET_ID, 
       MEAS_OBJ_ID, 
+      MEAS_CAT_ID, 
       MEAS_IMAGE_ID, 
       MEAS_PSF_QF, 
@@ -262,8 +264,8 @@
 double       *ExtractMeasuresByDMag PROTO((PhotCode **code, int *mode, int use_first, Average *average, SecFilt *secfilt, Measure *measure, int *nlist, int param));
 double       *ExtractMeasuresDMag   PROTO((PhotCode **code, int *mode, Average *average, SecFilt *secfilt, Measure *measure, int *nlist));
-void          FreeImageSelection    PROTO(());
-void          FreeImageSelection    PROTO(());
+void          FreeImageSelection    PROTO((void));
+void          FreeImageSelection    PROTO((void));
 int           GetAverageParam       PROTO((char *parname));
-void          GetAverageParamHelp   PROTO(());
+void          GetAverageParamHelp   PROTO((void));
 int           GetMagMode            PROTO((char *string));
 double        GetMeasure            PROTO((int param, Average *average, Measure *measure, double mag));
@@ -271,9 +273,9 @@
 int           GetMeasureTypeCode    PROTO((Measure *measure));
 int           GetPhotcodeInfo       PROTO((char *string, PhotCode **Code, int *Mode));
-int           GetSelectionParam     PROTO(());
+int           GetSelectionParam     PROTO((void));
 int           GetTimeSelection      PROTO((time_t *tz, time_t *te));
-void          InitDVO               PROTO(());
-void          FreeDVO               PROTO(());
-int           InitPhotcodes         PROTO(());
+void          InitDVO               PROTO((void));
+void          FreeDVO               PROTO((void));
+int           InitPhotcodes         PROTO((void));
 Image        *LoadImages            PROTO((int *Nimage));
 Image        *MatchImage            PROTO((unsigned int time, short int source));
@@ -285,6 +287,6 @@
 SkyList      *SkyListLoadFile       PROTO((char *filename));
 int           SetCATDIR             PROTO((char *path, int verbose));
-char *        GetCATDIR             PROTO(());
-SkyTable     *GetSkyTable           PROTO(());
+char *        GetCATDIR             PROTO((void));
+SkyTable     *GetSkyTable           PROTO((void));
 SkyList      *SkyListFromFile       PROTO((char *filename));
 SkyRegionSelection *SetRegionSelection    PROTO((int *argc, char **argv));
@@ -339,5 +341,5 @@
 int get_skyregion (double *Rs, double *Re, double *Ds, double *De);
 int set_skyregion (double Rs, double Re, double Ds, double De);
-void FreeImageSelection ();
+void FreeImageSelection (void);
 
 void FreeSkyRegionSelection (SkyRegionSelection *selection);
@@ -345,14 +347,14 @@
 
 int dbExtractMeasuresInitTransform (CoordTransformSystem target);
-int dbExtractMeasuresInitAve ();
-int dbExtractMeasuresInitMeas ();
-int dbExtractMeasuresInit ();
+int dbExtractMeasuresInitAve (void);
+int dbExtractMeasuresInitMeas (void);
+int dbExtractMeasuresInit (void);
 
 int dbExtractAveragesInitTransform (CoordTransformSystem target);
-int dbExtractAveragesInit ();
+int dbExtractAveragesInit (void);
 
 int dbExtractImagesInitTransform (CoordTransformSystem target);
-int dbExtractImagesInit ();
-int dbExtractImagesReset ();
+int dbExtractImagesInit (void);
+int dbExtractImagesReset (void);
 
 # endif
Index: trunk/Ohana/src/opihi/include/imfit.h
===================================================================
--- trunk/Ohana/src/opihi/include/imfit.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/imfit.h	(revision 21153)
@@ -8,5 +8,5 @@
 
 opihi_flt (*fitfunc)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *);
-void (*imfit_cleanup)();
+void (*imfit_cleanup)(void);
 
 void fgauss_setup (char *name);
Index: trunk/Ohana/src/opihi/include/mana.h
===================================================================
--- trunk/Ohana/src/opihi/include/mana.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/mana.h	(revision 21153)
@@ -5,6 +5,6 @@
 # ifndef MANA_H
 
-void InitMana ();
-void FreeMana ();
+void InitMana (void);
+void FreeMana (void);
 int *findrowpeaks (float *row, int Nrow, float threshold, int *npeaks);
 
Index: trunk/Ohana/src/opihi/include/pantasks.h
===================================================================
--- trunk/Ohana/src/opihi/include/pantasks.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/pantasks.h	(revision 21153)
@@ -167,17 +167,17 @@
 /* scheduler prototypes */
 
-void InitPantasks ();
-void FreePantasks ();
-
-void InitPantasksServer ();
-void FreePantasksServer ();
-
-void InitPantasksClient ();
-void FreePantasksClient ();
-
-void InitTasks ();
-void FreeTasks ();
-
-Task *NextTask ();
+void InitPantasks (void);
+void FreePantasks (void);
+
+void InitPantasksServer (void);
+void FreePantasksServer (void);
+
+void InitPantasksClient (void);
+void FreePantasksClient (void);
+
+void InitTasks (void);
+void FreeTasks (void);
+
+Task *NextTask (void);
 Task *FindTask (char *name);
 void ListTasks (int verbose);
@@ -186,11 +186,11 @@
 Task *CreateTask (char *name);
 int ValidateTask (Task *task, int RequireStatic);
-int RegisterNewTask ();
-int DeleteNewTask ();
-Task *GetNewTask ();
-Task *GetActiveTask ();
+int RegisterNewTask (void);
+int DeleteNewTask (void);
+Task *GetNewTask (void);
+Task *GetActiveTask (void);
 void SetTaskTimer (struct timeval *timer);
 double GetTaskTimer (struct timeval start, int verbose);
-void InitTaskTimers ();
+void InitTaskTimers (void);
 int TaskHash (char *input);
 int RemoveTask (Task *task);
@@ -200,15 +200,15 @@
 void UpdateTaskTimerStats (Task *task, int mode, double dtime);
 
-int NextJobID ();
-void InitJobIDs ();
-void FreeJobIDs ();
+int NextJobID (void);
+void InitJobIDs (void);
+void FreeJobIDs (void);
 int FreeJobID (int ID);
 
-void InitJobs ();
-void FreeJobs ();
-
-Job *NextJob ();
+void InitJobs (void);
+void FreeJobs (void);
+
+Job *NextJob (void);
 Job *FindJob (int JobID);
-void ListJobs ();
+void ListJobs (void);
 Job *CreateJob (Task *task);
 int SubmitJob (Job *job);
@@ -217,8 +217,8 @@
 void FreeJob (Job *job);
 
-float CheckJobs ();
-float CheckTasks ();
-int CheckSystem ();
-int CheckController ();
+float CheckJobs (void);
+float CheckTasks (void);
+int CheckSystem (void);
+int CheckController (void);
 int CheckTimeRanges (TimeRange *ranges, int Nranges);
 int BumpTimeRanges (TimeRange *ranges, int Nranges);
@@ -230,29 +230,29 @@
 int DeleteControllerJob (Job *job);
 Job *FindControllerJob (int JobID);
-int StartController ();
+int StartController (void);
 int ControllerCommand (char *command, char *response, IOBuffer *buffer);
 int SubmitLocalJob (Job *job);
 int CheckLocalJob (Job *job);
 int CheckLocalJobStatus (Job *job);
-void InitTaskTimers ();
+void InitTaskTimers (void);
 CommandF *FindControllerCommand (char *cmd);
-int QuitController ();
-int StopController ();
-int RestartController ();
-int VerboseMode ();
+int QuitController (void);
+int StopController (void);
+int RestartController (void);
+int VerboseMode (void);
 int KillLocalJob (Job *job);
-int CheckControllerOutput ();
-int PrintControllerOutput ();
+int CheckControllerOutput (void);
+int PrintControllerOutput (void);
 
 int AddHost (char *hostname, int max_threads);
 int DeleteHost (char *hostname);
 
-int FlushControllerOutput ();
+int FlushControllerOutput (void);
 int KillControllerJob (Job *job);
-int CheckControllerStatus ();
+int CheckControllerStatus (void);
 void gotsignal (int signum);
 int client_shell (int argc, char **argv);
 
-void InitClients ();
+void InitClients (void);
 void AddNewClient (int client);
 int  DeleteClient (int client);
@@ -261,31 +261,31 @@
 // functions related to the server threads
 void CheckTasksSetState (int state);
-int CheckTasksGetState ();
+int CheckTasksGetState (void);
 void *CheckTasksThread (void *data);
 
 void CheckJobsSetState (int state);
-int CheckJobsGetState ();
+int CheckJobsGetState (void);
 void *CheckJobsThread (void *data);
 
 void CheckControllerSetState (int state);
-int CheckControllerGetState ();
+int CheckControllerGetState (void);
 void *CheckControllerThread (void *data);
 
 void CheckInputsSetState (int state);
-int CheckInputsGetState ();
+int CheckInputsGetState (void);
 void *CheckInputsThread (void *data);
 
 // functions related to the queue of input files
-void InitInputs ();
-void FreeInputs ();
+void InitInputs (void);
+void FreeInputs (void);
 void AddNewInput (char *input);
 int DeleteInput (char *input);
-void CheckInputs ();
-
-void SerialThreadLock ();
-void SerialThreadUnlock ();
-
-int InitPassword ();
+void CheckInputs (void);
+
+void SerialThreadLock (void);
+void SerialThreadUnlock (void);
+
+int InitPassword (void);
 int CheckPassword (int BindSocket);
 
-int FlushJobs ();
+int FlushJobs (void);
Index: trunk/Ohana/src/opihi/include/pclient.h
===================================================================
--- trunk/Ohana/src/opihi/include/pclient.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/pclient.h	(revision 21153)
@@ -44,11 +44,11 @@
 IOBuffer child_stderr;
 
-int InitChild ();
-int FreeChild ();
-int CheckChild ();
-void CheckChildStatus ();
+int InitChild (void);
+int FreeChild (void);
+int CheckChild (void);
+void CheckChildStatus (void);
 
-void InitPclient ();
-void FreePclient ();
+void InitPclient (void);
+void FreePclient (void);
 void gotsignal (int signum);
 
Index: trunk/Ohana/src/opihi/include/pcontrol.h
===================================================================
--- trunk/Ohana/src/opihi/include/pcontrol.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/pcontrol.h	(revision 21153)
@@ -154,9 +154,9 @@
 // # define ABORT(STRING) { gprint (GP_ERR, "programming error: %s\n", STRING); raise (SIGINT); exit (2); }
 
-void InitPcontrol ();
-void FreePcontrol ();
+void InitPcontrol (void);
+void FreePcontrol (void);
 
 /*** StackOps.c ***/
-Stack *InitStack ();
+Stack *InitStack (void);
 void   FreeStack (Stack *stack);
 int    PushStack (Stack *stack, int where, void *object, int id, char *name);
@@ -173,5 +173,5 @@
 
 /*** CheckSystem.c ***/
-int   CheckSystem ();
+int   CheckSystem (void);
 void *CheckSystem_Threaded (void *data);
 int   CheckBusyJobs (float delay);
@@ -214,22 +214,22 @@
 
 /*** misc files ***/
-int    VerboseMode ();  // in verbose.c
+int    VerboseMode (void);  // in verbose.c
 void   gotsignal (int signum); // in pcontrol.c
 
 /*** IDops.c ***/
-void InitIDs ();
-IDtype NextJobID ();
-IDtype NextHostID ();
+void InitIDs (void);
+IDtype NextJobID (void);
+IDtype NextHostID (void);
 void PrintID (gpDest dest, IDtype ID);
 IDtype GetID (char *IDword);
 
 /*** CheckPoint.c ***/
-int SetCheckPoint ();
-int ClearCheckPoint ();
-int TestCheckPoint ();
+int SetCheckPoint (void);
+int ClearCheckPoint (void);
+int TestCheckPoint (void);
 
 /*** HostOps.c ***/
-void   InitHostStacks ();
-void   FreeHostStacks ();
+void   InitHostStacks (void);
+void   FreeHostStacks (void);
 Stack *GetHostStack (int StackID);
 char  *GetHostStackName (int StackID);
@@ -246,5 +246,5 @@
 void   DownHost (Host *host);
 void   OffHost (Host *host);
-int    DownHosts ();
+int    DownHosts (void);
 int    StopHost (Host *host);
 int    StopHostResponse (Host *host);
@@ -254,6 +254,6 @@
 int InitJobOutput (JobOutput *output);
 int ResetJobOutput (JobOutput *output);
-void   InitJobStacks ();
-void   FreeJobStacks ();
+void   InitJobStacks (void);
+void   FreeJobStacks (void);
 Stack *GetJobStack (int StackID);
 char  *GetJobStackName (int StackID);
Index: trunk/Ohana/src/opihi/include/shell.h
===================================================================
--- trunk/Ohana/src/opihi/include/shell.h	(revision 21086)
+++ trunk/Ohana/src/opihi/include/shell.h	(revision 21153)
@@ -16,5 +16,5 @@
 typedef enum {GP_LOG, GP_ERR} gpDest;
 
-typedef int CommandF ();
+typedef int CommandF (int argc, char **argv);
 
 typedef struct sockaddr_in SockAddress;
@@ -65,7 +65,7 @@
 int           opihi                     PROTO((int argc, char **argv));
 int           multicommand          	PROTO((char *line));
-int getServer ();
+int getServer (void);
 void          multicommand_InitServer   PROTO((void));
-void multicommand_StopServer ();
+void multicommand_StopServer (void);
 
 int           command               	PROTO((char *line, char **outline, int VERBOSE));
@@ -74,5 +74,5 @@
 char         *parse                 	PROTO((char *line));
 char        **parse_commands        	PROTO((char *, int *));
-void          welcome                   PROTO(());
+void          welcome                   PROTO((void));
 
 int           add_listentry             PROTO((int ThisList, char *line));
@@ -85,11 +85,11 @@
 int           is_task_exec             	PROTO((char *line));
 int           is_macro_create       	PROTO((char *line));
-void          InitLists                 PROTO(());
-int current_list_depth ();
-int increase_list_depth ();
-int decrease_list_depth ();
+void          InitLists                 PROTO((void));
+int current_list_depth (void);
+int increase_list_depth (void);
+int decrease_list_depth (void);
 char *get_next_listentry (int ThisList);
 
-void          InitCommands              PROTO(());
+void          InitCommands              PROTO((void));
 void          AddCommand                PROTO((Command *new));
 int           DeleteCommand             PROTO((Command *command));
@@ -105,5 +105,5 @@
 int           GetMacroDepth             PROTO((void));
 void          ListMacro                 PROTO((Macro *macro));
-void          ListMacros                PROTO(());
+void          ListMacros                PROTO((void));
 void          FreeMacro                 PROTO((Macro *macro));
 CommandF     *find_macro_command        PROTO((char *name));
@@ -151,9 +151,9 @@
 char 	     *memstr        		PROTO((char *m1, char *m2, int n));
 int  	      write_fmt     		PROTO((int fd, char *format, ...));
-char 	     *opihi_version 		PROTO(());
+char 	     *opihi_version 		PROTO((void));
 char 	     *strip_version 		PROTO((char *input));
 
 /* gprint functions */
-void          gprintInit      		PROTO(());
+void          gprintInit      		PROTO((void));
 gpStream     *gprintGetStream 		PROTO((gpDest dest));
 void          gprintSetBuffer 		PROTO((gpDest dest));
@@ -172,12 +172,12 @@
 int GetClientSocket (char *hostname);
 int InitServerSocket_Named (char *hostname, SockAddress *Address);
-int DefineValidIP ();
+int DefineValidIP (void);
 
-void FreeCommands ();
-void FreeMacros ();
-void FreeBuffers ();
-void FreeVectors ();
-void FreeVariables ();
-void FreeLists ();
+void FreeCommands (void);
+void FreeMacros (void);
+void FreeBuffers (void);
+void FreeVectors (void);
+void FreeVariables (void);
+void FreeLists (void);
 
 # endif
