Index: trunk/Ohana/src/photdbc/src/check_directory.c
===================================================================
--- trunk/Ohana/src/photdbc/src/check_directory.c	(revision 8390)
+++ 	(revision )
@@ -1,41 +1,0 @@
-# include "photdbc.h"
-
-void check_directory (char *basefile) {
-  
-  char *c, dir[256], filename[256];
-  struct stat filestat;
-  uid_t uid;
-  gid_t gid;
-  int status, cmode;
-
-  uid = getuid();
-  gid = getgid();
-
-  /* check permission to write to directory */
-  sprintf (filename, "%s", basefile);
-  c = strrchr (filename, '/');
-  if (c == (char *) NULL) {
-    strcpy (dir, ".");
-  } else {
-    *c = 0;
-    strcpy (dir, filename);
-  }
-  status = stat (dir, &filestat);
-  if (status == -1) {
-    fprintf (stderr, "directory %s does not exist, creating...\n", dir);
-    cmode = S_IRWXU | S_IRWXG | S_IRWXO;
-    status = mkdir (dir, cmode);
-    if (status == -1) {
-      fprintf (stderr, "ERROR: can't create %s\n", dir);
-      exit (1);
-    }
-  } 
-  status = stat (dir, &filestat);
-  if (((uid == filestat.st_uid) && (filestat.st_mode & S_IRWXU)) ||
-      ((gid == filestat.st_gid) && (filestat.st_mode & S_IRWXG)) || 
-      (filestat.st_mode & S_IRWXO)) {
-  } else {
-    fprintf (stderr, "ERROR: can't write to %s\n", dir);
-    exit (1);
-  }
-}
Index: trunk/Ohana/src/photdbc/src/check_permissions.c
===================================================================
--- trunk/Ohana/src/photdbc/src/check_permissions.c	(revision 8390)
+++ 	(revision )
@@ -1,67 +1,0 @@
-# include "photdbc.h"
-
-void check_permissions (char *basefile) {
-  
-  char *c, dir[256], filename[256];
-  struct stat filestat;
-  uid_t uid;
-  gid_t gid;
-  int status, cmode;
-
-  uid = getuid();
-  gid = getgid();
-
-  /* check permission to write to directory */
-  sprintf (filename, "%s", basefile);
-  c = strrchr (filename, '/');
-  if (c == (char *) NULL) {
-    strcpy (dir, ".");
-  } else {
-    *c = 0;
-    strcpy (dir, filename);
-  }
-  status = stat (dir, &filestat);
-  if (status == -1) {
-    fprintf (stderr, "directory %s does not exist, creating...\n", dir);
-    cmode = S_IRWXU | S_IRWXG | S_IRWXO;
-    status = mkdir (dir, cmode);
-    if (status == -1) {
-      fprintf (stderr, "ERROR: can't create %s\n", dir);
-      exit (1);
-    }
-  } 
-  status = stat (dir, &filestat);
-  if (((uid == filestat.st_uid) && (filestat.st_mode & S_IRWXU)) ||
-      ((gid == filestat.st_gid) && (filestat.st_mode & S_IRWXG)) || 
-      (filestat.st_mode & S_IRWXO)) {
-  } else {
-    fprintf (stderr, "ERROR: can't write to %s\n", dir);
-    exit (1);
-  }
-  
-  /* check permission to write to file */
-  sprintf (filename, "%s", basefile);
-  status = stat (filename, &filestat);
-  if (status == 0) { /* file exists, are permissions OK? */
-    if (((uid == filestat.st_uid) && (filestat.st_mode & S_IRUSR) && (filestat.st_mode & S_IWUSR)) ||
-	((gid == filestat.st_gid) && (filestat.st_mode & S_IRGRP) && (filestat.st_mode & S_IWGRP)) || 
-	((filestat.st_mode & S_IROTH) && (filestat.st_mode & S_IWOTH))) {
-    } else {
-      fprintf (stderr, "ERROR: can't write to %s\n", filename);
-      exit (1);
-    }
-  }
-  
-  /* check permission to write to backup file */
-  sprintf (filename, "%s~", basefile);
-  status = stat (filename, &filestat);
-  if (status == 0) { /* file exists, are permissions OK? */
-    if (((uid == filestat.st_uid) && (filestat.st_mode & S_IRUSR) && (filestat.st_mode & S_IWUSR)) ||
-	((gid == filestat.st_gid) && (filestat.st_mode & S_IRGRP) && (filestat.st_mode & S_IWGRP)) || 
-	((filestat.st_mode & S_IROTH) && (filestat.st_mode & S_IWOTH))) {
-    } else {
-      fprintf (stderr, "ERROR: can't write to %s\n", filename);
-      exit (1);
-    }
-  }
-}
Index: trunk/Ohana/src/photdbc/src/find_regions.c
===================================================================
--- trunk/Ohana/src/photdbc/src/find_regions.c	(revision 8390)
+++ 	(revision )
@@ -1,102 +1,0 @@
-# include "photdbc.h"
-
-/* given a list of images, find all region files which overlap these images.
-   if a region file does not exist, we should recognize this fact somehow */
-
-GSCRegion *find_regions (Image *image, int Nimage, int *Nregions, GSCRegion *fullregion) {
-
-  int i, nregions;
-  double x, y;
-  GSCRegion *regions;
-  double MinRA, MaxRA, MinDEC, MaxDEC, ra, dec;
-
-  if (VERBOSE) fprintf (stderr, "finding regions: ");
-  
-  /* find RA and DEC range of images */
-  MinRA = MinDEC = +361;
-  MaxRA = MaxDEC = -361;
-  for (i = 0; i < Nimage; i++) {
-    for (x = 0.0; x <= 1.0; x+=0.25) {
-      for (y = 0.0; y <= 1.0; y+=0.25) {
-	XY_to_RD (&ra, &dec, image[i].NX*(1.1*x - 0.05), image[i].NY*(1.1*y - 0.05), &image[i].coords);
-	MinRA = MIN (ra, MinRA);
-	MaxRA = MAX (ra, MaxRA);
-	MinDEC = MIN (dec, MinDEC);
-	MaxDEC = MAX (dec, MaxDEC);
-      }
-    }
-  }
-
-  /* if images overlap 0,360 boundary, then use -180 to +180 range */
-  if (MaxRA - MinRA > 180) {
-    MinRA = +361;
-    MaxRA = -361;
-    for (i = 0; i < Nimage; i++) {
-      for (x = 0.0; x <= 1.0; x+=0.25) {
-	for (y = 0.0; y <= 1.0; y+=0.25) {
-	  XY_to_RD (&ra, &dec, image[i].NX*(1.1*x - 0.05), image[i].NY*(1.1*y - 0.05), &image[i].coords);
-	  if (ra > 180) ra -= 360;
-	  MinRA = MIN (ra, MinRA);
-	  MaxRA = MAX (ra, MaxRA);
-	}
-      }
-    }
-  }
-
-  fullregion[0].RA[0] = MinRA;
-  fullregion[0].RA[1] = MaxRA;
-  fullregion[0].DEC[0] = MinDEC;
-  fullregion[0].DEC[1] = MaxDEC;
-
-  /* find all region files containing specified ra, dec range */  
-  regions = get_regions (MinRA, MaxRA, MinDEC, MaxDEC, &nregions);
-
-  if (VERBOSE) fprintf (stderr, "%d found\n", nregions);
-
-  *Nregions = nregions;
-  return (regions);
-}
-
-
-void getfullregion (Image *image, int Nimage, GSCRegion *fullregion) {
-
-  int i;
-  double x, y;
-  double MinRA, MaxRA, MinDEC, MaxDEC, ra, dec;
-
-  /* find RA and DEC range of images */
-  MinRA = MinDEC = +361;
-  MaxRA = MaxDEC = -361;
-  for (i = 0; i < Nimage; i++) {
-    for (x = 0.0; x <= 1.0; x+=0.25) {
-      for (y = 0.0; y <= 1.0; y+=0.25) {
-	XY_to_RD (&ra, &dec, image[i].NX*(1.1*x - 0.05), image[i].NY*(1.1*y - 0.05), &image[i].coords);
-	MinRA = MIN (ra, MinRA);
-	MaxRA = MAX (ra, MaxRA);
-	MinDEC = MIN (dec, MinDEC);
-	MaxDEC = MAX (dec, MaxDEC);
-      }
-    }
-  }
-
-  /* if images overlap 0,360 boundary, then use -180 to +180 range */
-  if (MaxRA - MinRA > 180) {
-    MinRA = +361;
-    MaxRA = -361;
-    for (i = 0; i < Nimage; i++) {
-      for (x = 0.0; x <= 1.0; x+=0.25) {
-	for (y = 0.0; y <= 1.0; y+=0.25) {
-	  XY_to_RD (&ra, &dec, image[i].NX*(1.1*x - 0.05), image[i].NY*(1.1*y - 0.05), &image[i].coords);
-	  if (ra > 180) ra -= 360;
-	  MinRA = MIN (ra, MinRA);
-	  MaxRA = MAX (ra, MaxRA);
-	}
-      }
-    }
-  }
-
-  fullregion[0].RA[0] = MinRA;
-  fullregion[0].RA[1] = MaxRA;
-  fullregion[0].DEC[0] = MinDEC;
-  fullregion[0].DEC[1] = MaxDEC;
-}
Index: trunk/Ohana/src/photdbc/src/gcatalog.c
===================================================================
--- trunk/Ohana/src/photdbc/src/gcatalog.c	(revision 8390)
+++ 	(revision )
@@ -1,25 +1,0 @@
-# include "photdbc.h"
-
-int gcatalog (Catalog *catalog) {
-  
-  char mode;
-
-  /* no autodetect for CATMODE yet */
-  strcpy (catalog[0].catmode, CATMODE);
-
-  /* read catalog header */
-  mode = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF;
-  if (!load_catalog (catalog, mode, VERBOSE)) {
-    fprintf (stderr, "ERROR: failure loading catalog %s\n", catalog[0].filename);
-    exit (1);
-  }
-
-  if (VERBOSE) {
-    fprintf (stderr, "read %d stars from catalog file %s (%d measurements)\n", 
-	     catalog[0].Naverage, catalog[0].filename, catalog[0].Nmeasure);
-  }
-  return (TRUE);
-}
-
-
-
Index: trunk/Ohana/src/photdbc/src/get_regions.c
===================================================================
--- trunk/Ohana/src/photdbc/src/get_regions.c	(revision 8390)
+++ 	(revision )
@@ -1,167 +1,0 @@
-# include "photdbc.h"
-double BigDecBounds[] = {0.0, 7.5, 15.0, 22.5, 30.0, 37.5, 45.0, 
-			 52.5, 60.0, 67.5, 75.0, 82.5, 90.0,
-			 0.0, -7.5, -15.0, -22.5, -30.0, -37.5, -45.0, 
-			 -52.5, -60.0, -67.5, -75.0, -82.5, -90.0};
-
-double Areas[] = {2700.0, 2665.4505, 2563.567, 2399.5344, 2181.6343, 1920.7299, 1629.5942, 1322.1251, 1012.5, 714.32555, 439.83856, 199.21043, 0.0,
-		  2700.0, 2665.4505, 2563.567, 2399.5344, 2181.6343, 1920.7299, 1629.5942, 1322.1251, 1012.5, 714.32555, 439.83856, 199.21043, 0.0};
-
-char *DecSections[] = {"N0000", "N0730", "N1500", "N2230", "N3000", "N3730", "N4500", 
-		       "N5230", "N6000", "N6730", "N7500", "N8230", "weirdness", 
-		       "S0000", "S0730", "S1500", "S2230", "S3000", "S3730", "S4500", 
-		       "S5230", "S6000", "S6730", "S7500", "S8230", "weirdness"};
-
-char *Dec2Sections[] = {"n0000", "n0730", "n1500", "n2230", "n3000", "n3730", "n4500", 
-			"n5230", "n6000", "n6730", "n7500", "n8230", "weirdness", 
-			"s0000", "s0730", "s1500", "s2230", "s3000", "s3730", "s4500", 
-			"s5230", "s6000", "s6730", "s7500", "s8230", "weirdness"};
-
-char *disk[] = {"disk 1", "disk 1", "disk 1", "disk 1", "disk 1", "disk 1", "disk 1", 
-		"disk 1", "disk 1", "disk 1", "disk 1", "disk 1", "weirdness", 
-		"disk 1", "disk 2", "disk 2", "disk 2", "disk 2", "disk 2", "disk 2", 
-		"disk 2", "disk 2", "disk 2", "disk 2", "disk 2", "weirdness"};
-
-int NBigRASections [] = {48, 47, 45, 43, 40, 36, 32, 28, 21, 15, 9, 3, 3, 48, 47, 45, 43, 40, 36, 32, 28, 21, 15, 9, 3, 3};
-
-int NDecLines[] = {593, 584, 551, 530, 522, 465, 406, 362, 280, 198, 123, 24, 
-                   0, 597, 578, 574, 577, 534, 499, 442, 376, 294, 212, 144, 48};
-
-/* returns a list of region files within the desired RA, DEC region */
-GSCRegion *get_regions (double minRa, double maxRa, double minDec, double maxDec, int *Nregions) {
-  
-  char buffer[28800], temp[50];
-  GSCRegion *regions;
-  FILE *f;
-  double RA0, RA1, DEC0, DEC1;
-  int i, j, NBigDec;
-  int NLINES, done, NREGIONS, nregions;
-  
-  f = fopen (GSCFILE, "r");
-  if (f == NULL) {
-    fprintf (stderr, "ERROR: can't find regions file %s\n", GSCFILE);
-    exit (0);
-  }
-  
-  NREGIONS = 50;
-  ALLOCATE (regions, GSCRegion, NREGIONS);
-  nregions = 0;
-
-  if ((minDec <= -90) || (maxDec >= 90)) {
-    minRa = 0;
-    maxRa = 360;
-  }
-  
-  /* use the pole regions, if near pole */
-  if (maxDec > 86.25) {
-    sprintf (regions[nregions].filename, "n8230/pole.cpt");
-    regions[nregions].RA[0] = 0;
-    regions[nregions].RA[1] = 360;
-    regions[nregions].DEC[0] = 86.25;
-    regions[nregions].DEC[1] = 90.0;
-    nregions ++;
-    if (nregions == NREGIONS) {
-      NREGIONS += 50;
-      REALLOCATE (regions, GSCRegion, NREGIONS);
-    }
-  }
-
-  if (minDec > 86.25) {
-    *Nregions = nregions;
-    return (regions);
-  }
-    
-  if ((minDec < 0) && (maxDec > 0)) {
-    /* Search Both Sides */
-    NBigDec = 0;
-  } else {
-    /* find large DEC region (directory) */
-    NBigDec = -1;
-    for (i = 0; i < 12; i++) {
-      if ((minDec >= BigDecBounds[i]) && (minDec < BigDecBounds[i+1])) {
-	NBigDec = i;
-	break;
-      }
-    }
-    if (NBigDec < 0) {
-      for (i = 13; i < 24; i++) {
-	if ((maxDec < BigDecBounds[i]) && (maxDec >= BigDecBounds[i+1])) {
-	  NBigDec = i;
-	  break;
-	}
-      }
-    }
-  }
-  if (NBigDec < 0) {
-    fprintf (stderr, "ERROR: Dec out of range: %f\n", minDec);
-    *Nregions = 0;
-    return ((GSCRegion *) NULL);
-  }
-  
-  /* count lines before section */
-  NLINES = 0;
-  for (i = 0; i < NBigDec; i++) {
-    NLINES += NDecLines[i];
-  }
-  fseek (f, 5*2880 + 48*NLINES, SEEK_SET);
-  
-  /* should be in this section.  if not, there is a problem counting... */
-  /* careful with the 0,360.0 boundary **/
-  done = FALSE;
-  for (j = 0; !done && (NBigDec + j < 25); j++) {
-    fread (buffer, 48*NDecLines[NBigDec + j], 1, f);
-    for (i = 0; (i < NDecLines[NBigDec + j]); i++) {
-      strncpy (temp, &buffer[i*48], 48);
-      temp[49] = 0;
-      hstgsc_hms_to_deg (&RA0, &RA1, &DEC0, &DEC1, &temp[7]);
-      if (RA1 < RA0) RA1 += 360.0;
-      if ((DEC1 > 0) && (minDec < DEC1) && (maxDec > DEC0) && (minRa < RA1) && (maxRa > RA0)) {
-	temp[5] = 0;
-	sprintf (regions[nregions].filename, "%s/%s.cpt", Dec2Sections[NBigDec + j], &temp[1]);
-	regions[nregions].RA[0] = RA0;
-	regions[nregions].RA[1] = RA1;
-	regions[nregions].DEC[0] = DEC0;
-	regions[nregions].DEC[1] = DEC1;
-	nregions ++;
-	if (nregions == NREGIONS) {
-	  NREGIONS += 50;
-	  REALLOCATE (regions, GSCRegion, NREGIONS);
-	}
-      }
-      if ((DEC1 < 0) && (minDec < DEC0) && (maxDec > DEC1) && (minRa < RA1) && (maxRa > RA0)) {
-	temp[5] = 0;
-	sprintf (regions[nregions].filename, "%s/%s.cpt", Dec2Sections[NBigDec + j], &temp[1]);
-	regions[nregions].RA[0] = RA0;
-	regions[nregions].RA[1] = RA1;
-	regions[nregions].DEC[0] = DEC0;
-	regions[nregions].DEC[1] = DEC1;
-	nregions ++;
-	if (nregions == NREGIONS) {
-	  NREGIONS += 50;
-	  REALLOCATE (regions, GSCRegion, NREGIONS);
-	}
-      }
-      if (((DEC1 > 0) && (maxDec <= DEC1)) || ((DEC1 < 0) && (minDec >= DEC1))) {
-	done = TRUE;
-      }
-    }
-    if (done && (minDec < 0) && (maxDec > 0) && (BigDecBounds[NBigDec + j + 1] > 0)) {
-      /* skip remaining north sections, try south sections */
-      /* count lines before section */
-      NLINES = 0;
-      for (i = 0; i < 13; i++) { 
-	NLINES += NDecLines[i];
-      }
-      fseek (f, 5*2880 + 48*NLINES, SEEK_SET);
-      done = FALSE;
-      j = 12;
-    }
-  }
-
-  REALLOCATE (regions, GSCRegion, MAX (1,nregions));
-  *Nregions = nregions;
-  
-  fclose (f);
-  return (regions);
-  
-}
Index: trunk/Ohana/src/photdbc/src/image-db.c
===================================================================
--- trunk/Ohana/src/photdbc/src/image-db.c	(revision 8390)
+++ 	(revision )
@@ -1,2 +1,0 @@
-# include "photdbc.h"
-
Index: trunk/Ohana/src/photdbc/src/load_catalogs.c
===================================================================
--- trunk/Ohana/src/photdbc/src/load_catalogs.c	(revision 8390)
+++ trunk/Ohana/src/photdbc/src/load_catalogs.c	(revision 8391)
@@ -13,19 +13,19 @@
   for (i = 0; i < Nregion; i++) {
     catalog[i].filename = region[i].filename;  /* don't free region before catalog! */
-    switch (lock_catalog (&catalog[i], LCK_SOFT)) {
-    case 0:
-      fprintf (stderr, "ERROR: can't lock file %s\n", catalog[i].filename);
-      exit (1);
-    case 1:
-      gcatalog (&catalog[i]); /* load from disk */
-      break;
-    case 2:
-      if (VERBOSE) fprintf (stderr, "no data in %s, skipping\n", catalog[i].filename);
-      catalog[i].Naverage = 0;
-      catalog[i].Nmeasure = 0;
-      break;
-    default:
-      fprintf (stderr, "weird lock_catalog exit state\n");
-      exit (1);
+    catalog[i].catmode  = dvo_catalog_catmode (CATMODE);      // set the default catmode from config data
+    catalog[i].filename = skylist[0].filename[i];
+    catalog[i].Nsecfilt = GetPhotcodeNsecfilt ();
+    catalog[i].catflags = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF;
+    if (options.update) catalog[i].catflags = LOAD_AVES | LOAD_MEAS_META | LOAD_MISS | LOAD_SECF;
+
+    // an error exit status here is a significant error
+    if (!dvo_catalog_open (&catalog[i], skylist[0].regions[i], VERBOSE, "w")) {
+      fprintf (stderr, "ERROR: failure to open/create catalog file %s\n", catalog.filename);
+      exit (2);
+    }
+    if (!catalog[i].Nave_disk) {
+      dvo_catalog_unlock (&catalog[i]);
+      dvo_catalog_free (&catalog[i]);
+      continue;
     }
   }
Index: trunk/Ohana/src/photdbc/src/name_region.c
===================================================================
--- trunk/Ohana/src/photdbc/src/name_region.c	(revision 8390)
+++ 	(revision )
@@ -1,24 +1,0 @@
-# include "photdbc.h"
-
-GSCRegion *name_region (char *name, int *Nregions) {
-
-  GSCRegion *region;
-  Header header;
-
-  ALLOCATE (region, GSCRegion, 1);
-
-  sprintf (region[0].filename, "%s/%s", CATDIR, name);
-  if (!gfits_read_header (region[0].filename, &header)) {
-    if (VERBOSE) fprintf (stderr, "catalog file not yet available: %s\n", region[0].filename);
-    exit (0);
-  }
-  gfits_scan (&header, "RA0", "%lf", 1, &region[0].RA[0]);
-  gfits_scan (&header, "RA1", "%lf", 1, &region[0].RA[1]);
-  gfits_scan (&header, "DEC0", "%lf", 1, &region[0].DEC[0]);
-  gfits_scan (&header, "DEC1", "%lf", 1, &region[0].DEC[1]);
-  gfits_free_header (&header);
-
-  *Nregions = 1;
-  return (region);
-}
-
Index: trunk/Ohana/src/photdbc/src/photdbc.c
===================================================================
--- trunk/Ohana/src/photdbc/src/photdbc.c	(revision 8390)
+++ trunk/Ohana/src/photdbc/src/photdbc.c	(revision 8391)
@@ -35,15 +35,21 @@
   get_mags (catalog);
 
-  unlock_catalog (catalog);
+  // XXX this is all messed up: are we working on more than one region or not??
+  for (i = 0; i < Nregion; i++) {
+    // XXX empty catalogs are already unlocked and freed 
+    dvo_catalog_unlock (&catalog[i]);
+    dvo_catalog_free (&catalog[i]);
+  }
 
+  // XXX?????
   sprintf (filename, "newdir/%s", argv[1]);
   catalog[0].filename = filename;
 
   check_directory (catalog[0].filename);
-  if (!lock_catalog (catalog, LCK_XCLD)) { 
+  if (!dvo_catalog_open (catalog, ...)) { 
     fprintf (stderr, "can't lock new catalog file %s\n", catalog[0].filename);
     exit (1);
   }
-  wcatalog (catalog);
+  dvo_catalog_save (catalog);
   exit (0);
 }
Index: trunk/Ohana/src/photdbc/src/time.c
===================================================================
--- trunk/Ohana/src/photdbc/src/time.c	(revision 8390)
+++ 	(revision )
@@ -1,313 +1,0 @@
-# include <photdbc.h>
-  
-/***** convert [-]00:00:00 to 0.0000 ****/
-int dms_to_ddd (double *Value, char *string) {
-  
-  int valid, neg, status;
-  double tmp, value;
-  char *p1, *p2, *px;
-
-  valid = FALSE; 
-  neg = FALSE;
-  stripwhite (string);
-  p1 = string;
-  px = string + strlen(string);
-
-  if (string[0] == '-') { 
-    valid = TRUE; 
-    neg = TRUE;
-    p1 = &string[1];
-  }
-  if (string[0] == '+') { 
-    valid = TRUE; 
-    neg = FALSE;
-    p1 = &string[1];
-  }
-  if (isdigit(string[0])) { 
-    valid = TRUE;
-    p1 = &string[0];
-  }
-  if (!valid) { return (FALSE); }
-
-  status = 1;
-  tmp = strtod (p1, &p2);
-  if (p2 == p1) return (FALSE); /* entry not a number: +fred */
-  value = tmp;
-  if (p2 == px) goto escape;    /* entry only number: +1.0 */ 
-  p1 = p2 + 1;
-
-  tmp = strtod (p1, &p2);
-  if (p2 == p1) goto escape;    /* entry not a number: +1:fred */
-  status = 2;
-  value += tmp / 60.0;
-  if (p2 == px) goto escape;    /* entry only number: +1:1 */
-  p1 = p2 + 1;
-
-  tmp = strtod (p1, &p2);
-  if (p2 == p1) goto escape;    /* entry not a number: +1:1:fred */
-  value += tmp / 3600.0;
-
- escape:
-  if (neg) {
-    value *= -1;
-  }
-  *Value = value;
-
-  return (status);
-}
-
-/**********/
-int str_to_radec (double *ra, double *dec, char *str1, char *str2) {
-
-  double Ra, Dec;
-
-  *ra = *dec = 0;
-  switch (dms_to_ddd (&Ra, str1)) {
-  case 0:
-    fprintf (stderr, "syntax error in RA\n");
-    return (FALSE);
-  case 1:
-    break;
-  case 2:
-    Ra = Ra * 15;
-    break;
-  }
-  switch (dms_to_ddd (&Dec, str2)) {
-  case 0:
-    fprintf (stderr, "syntax error in DEC\n");
-    return (FALSE);
-  case 1:
-  case 2:
-    break;
-  }
-  *ra = Ra;
-  *dec = Dec;
-  return (TRUE);
-}
-
-# define FORMAT_DAYS    1
-# define FORMAT_HOURS   2
-# define FORMAT_MINUTES 3
-# define FORMAT_SECONDS 4
-# define FORMAT_JD      5
-# define FORMAT_DATE    6
-
-/**********/
-int chk_time (char *line) {
-
-  char *p1, *p2;
-  double tmp;
-  int mode;
-
-  p1 = line;
-  tmp = strtod (p1, &p2);
-  if (p2 == p1 + strlen (p1) - 1) {
-    if (*p2 == 'd') {
-      mode = FORMAT_DAYS;
-    }
-    if (*p2 == 'h') {
-      mode = FORMAT_HOURS;
-    }
-    if (*p2 == 'm') {
-      mode = FORMAT_MINUTES;
-    }
-    if (*p2 == 's') {
-      mode = FORMAT_SECONDS;
-    }
-    if (*p2 == 'j') {
-      mode = FORMAT_JD;
-    }
-  } else { 
-    mode = FORMAT_DATE;
-  }
-  return (mode);
-}
-
-/**********/
-int str_to_time (char *line, unsigned int *second) {
-  
-  struct timeval now;
-  double jd;
-
-  if (!strcasecmp (line, "NOW")) {
-    gettimeofday (&now, (struct timezone *) NULL);
-    *second = now.tv_sec;
-    return (TRUE);
-  }
-    
-  if (!strcasecmp (line, "TODAY")) {
-    gettimeofday (&now, (struct timezone *) NULL);
-    *second = 86400 * ((int)(now.tv_sec / 86400));
-    return (TRUE);
-  }
-    
-  switch (chk_time (line)) {
-  case 0:
-    return (FALSE);
-  case FORMAT_DAYS:
-    *second = strtod (line, 0) * 86400.0;
-    return (TRUE);
-  case FORMAT_HOURS:
-    *second = strtod (line, 0) * 3600.0;
-    return (TRUE);
-  case FORMAT_MINUTES:
-    *second = strtod (line, 0) * 60.0;
-    return (TRUE);
-  case FORMAT_SECONDS:
-    *second = strtod (line, 0);
-    return (TRUE);
-  case FORMAT_JD:
-    jd = strtod (line, 0);
-    *second = jd_to_sec (jd);
-    return (TRUE);
-  case FORMAT_DATE:
-    *second = date_to_sec (line);
-    return (TRUE);
-  }
-  return (FALSE);
-}
-
-/**********/
-int str_to_dtime (char *line, double *second) {
-  
-  switch (chk_time (line)) {
-  case 0:
-  case FORMAT_JD:
-  case FORMAT_DATE:
-    return (FALSE);
-  case FORMAT_DAYS:
-    *second = strtod (line, 0) * 86400.0;
-    return (TRUE);
-  case FORMAT_HOURS:
-    *second = strtod (line, 0) * 3600.0;
-    return (TRUE);
-  case FORMAT_MINUTES:
-    *second = strtod (line, 0) * 60.0;
-    return (TRUE);
-  case FORMAT_SECONDS:
-    *second = strtod (line, 0);
-    return (TRUE);
-  }
-  return (FALSE);
-}
-
-/**********/
-double sec_to_jd (unsigned long second) {
-
-  double jd;
-  
-  jd = second/86400.0 + 2440587.5;
-  return (jd);
-}
-
-/**********/
-unsigned long jd_to_sec (double jd) {
-
-  unsigned long int second;
-
-  second = (jd - 2440587.5)*86400;
-  return (second);
-}
-
-/**********/
-char *sec_to_date (unsigned long second) {
-  
-  struct tm *gmt;
-  char *line;
-  
-  ALLOCATE (line, char, 64);
-  gmt   = gmtime (&second);
-  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);
-
-}
-
-/***** date in format yyyy/mm/dd,hh:mm:ss *****/
-unsigned long date_to_sec (char *date) {
-  
-  unsigned long second;
-  double tmp, jd;
-  struct tm now;
-  char *p1, *p2, *px;
-  
-  p1 = date;
-  px = date + strlen(date);
-  bzero (&now, sizeof(now));
-
-  tmp = strtod (p1, &p2);
-  if (p2 == p1) goto escape;
-  now.tm_year = tmp;
-  if (now.tm_year > 1000) now.tm_year -= 1900;
-  if (now.tm_year <   50) now.tm_year += 100;
-  if (p2 == px) goto escape;  
-  p1 = p2 + 1;
-
-  tmp = strtod (p1, &p2);
-  if (p2 == p1) goto escape;
-  now.tm_mon = tmp - 1; /* mon runs from 0 - 11 */
-  if (p2 == px) goto escape;  
-  p1 = p2 + 1;
-
-  tmp = strtod (p1, &p2);
-  if (p2 == p1) goto escape;
-  now.tm_mday = tmp;
-  if (p2 == px) goto escape;  
-  p1 = p2 + 1;
-
-  tmp = strtod (p1, &p2);
-  if (p2 == p1) goto escape;
-  p1 = p2 + 1;
-  now.tm_hour = tmp;
-  if (p2 == px) goto escape;  
-
-  tmp = strtod (p1, &p2);
-  if (p2 == p1) goto escape;
-  now.tm_min = tmp;
-  if (p2 == px) goto escape;  
-  p1 = p2 + 1;
-
-  tmp = strtod (p1, &p2);
-  if (p2 == p1) goto escape;
-  now.tm_sec = tmp;
-  if (p2 == px) goto escape;  
-  p1 = p2 + 1;
-
- escape:
-  jd = now.tm_mday - 32075 + (int)(1461*(1900 + now.tm_year + 4800 + (int)(((now.tm_mon+1)-14)/12))/4)
-    + (int)(367*((now.tm_mon+1) - 2 - (int)(((now.tm_mon+1) - 14)/12)*12)/12)
-    - (int)(3*(int)((1900 + now.tm_year + 4900 + (int)(((now.tm_mon+1) - 14)/12))/100)/4) - 0.5;
-  
-  second = (jd - 2440587.5)*86400 + 3600.0*now.tm_hour + now.tm_min*60.0 + now.tm_sec;
-
-  return (second);
-}
-
-
-/* times may be in forms as:
-   20040200450s (N seconds since 1970.0)
-   2440900.232j (julian date)
-   99/02/23,03:22:18 (date string)
-   (separators may be anything except space, +, -)
-   99:02:15:12:23:30
-   99:02:15:12h23m30s
-   */
-
-
-/* fseek with timeout - 0.5 sec */
-int Fseek (FILE *f, long offset, int whence) {
-
-  int status, k;
-
-  status = fseek (f, offset, whence);
-  if (status == -1) {
-    int k;
-    /* fprintf (stderr, "problem seeking position: %d\n", errno); */
-    for (k = 0; (k < 10) && ((status = fseek (f, 0, SEEK_SET)) == -1); k++) usleep (50000);
-    if (status == -1) {
-      /* fprintf (stderr, "ERROR: serious problem seeking position: %d\n", errno); */
-      /* clear lock at this point? */
-      return (0);
-    }
-  }
-  return (1);
-}
Index: trunk/Ohana/src/photdbc/src/wcatalog.c
===================================================================
--- trunk/Ohana/src/photdbc/src/wcatalog.c	(revision 8390)
+++ 	(revision )
@@ -1,36 +1,0 @@
-# include "photdbc.h"
-
-void wcatalog (Catalog *catalog) {
-  
-  /* set catalog format (elixir, loneos, etc) */
-  if (!strcmp (CATFORMAT, "INTERNAL")) {
-    sprintf (catalog[0].average_format, "DVO_AVERAGE");
-    sprintf (catalog[0].measure_format, "DVO_MEASURE");
-  } else {
-    sprintf (catalog[0].average_format, "DVO_AVERAGE_%s", CATFORMAT);
-    sprintf (catalog[0].measure_format, "DVO_MEASURE_%s", CATFORMAT);
-  }
-
-  if (!save_catalog (catalog, VERBOSE)) {
-    fprintf (stderr, "ERROR: failure saving catalog\n");
-    exit (1);
-  }
-
-  if (catalog[0].Naverage) {
-    free (catalog[0].average); 
-    catalog[0].Naverage = 0;
-  }
-  if (catalog[0].Nmeasure) {
-    free (catalog[0].measure); 
-    catalog[0].Nmeasure = 0;
-  }
-  if (catalog[0].Nmissing) {
-    free (catalog[0].missing); 
-    catalog[0].Nmissing = 0;
-  }
-  if (catalog[0].Nsecfilt) {
-    free (catalog[0].secfilt); 
-    catalog[0].Nsecfilt = 0;
-  }
-  gfits_free_header (&catalog[0].header);
-}
