Index: trunk/Ohana/src/addstar/doc/notes.txt
===================================================================
--- trunk/Ohana/src/addstar/doc/notes.txt	(revision 5445)
+++ trunk/Ohana/src/addstar/doc/notes.txt	(revision 5448)
@@ -21,5 +21,9 @@
   with .cpm, .cpn, .cps as needed.
 
-  
+  *** I need to fix the name method: common function to set it once 
+  in the dvo functions.  perhaps a pointer in the SkyRegion structure.
+  This needs some 32/64 bit care, though.  use a long long (or other 
+  type guaranteed to be 64 bit), and case to the appropriate type (size_t) 
+  when it is used?  also needs to be freed.
 
 todo:
Index: trunk/Ohana/src/addstar/src/SkyRegionUtils.c
===================================================================
--- trunk/Ohana/src/addstar/src/SkyRegionUtils.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/SkyRegionUtils.c	(revision 5448)
@@ -15,6 +15,5 @@
   /* match the basename against the GSCRegion file names */
   for (i = 0; i < input[0].Nregions; i++) {
-    sprintf (filename, "%s/%s.cpt", path, input[0].regions[i][0].name);
-    status = stat (filename, &filestats);
+    status = stat (input[0].regions[i][0].filename, &filestats);
     if ((status == -1) && (errno == ENOENT)) continue;
     /* give an error for other conditions? */
@@ -26,20 +25,4 @@
   }
   return (subset);
-}
-
-int SkyListSetPath (SkyList *list, char *path) {
-
-  int i;
-  char line[256];
-
-  for (i = 0; i < list[0].Nregions; i++) {
-    fprintf (stderr, "region: %s\n", list[0].regions[i][0].name);
-    sprintf (line, "%s/%s", path, list[0].regions[i][0].name);
-    fprintf (stderr, "line: %s\n", line);
-    strcpy (list[0].regions[i][0].name, line);
-    fprintf (stderr, "catalog: %s\n", list[0].regions[i][0].name);
-  }
-
-  return (TRUE);
 }
 
@@ -54,58 +37,2 @@
 }
 
-SkyTable *SkyTableLoadOptimal () {
-
-  char filename[256];
-  struct stat filestat;
-  SkyTable *sky;
-  int status;
-
-  /* first option: CATDIR/SkyTable.fits */
-  sprintf (filename, "%s/SkyTable.fits", CATDIR);
-  check_permissions (filename);
-
-  /* check for file existance */
-  status = stat (filename, &filestat);
-  if (status == 0) { /* file exists, are permissions OK? */
-    sky = SkyTableLoad (filename, VERBOSE);
-    if (sky == NULL) {
-      fprintf (stderr, "error loading sky table\n");
-      exit (1);
-    }
-    return (sky);
-  }
-
-  /* first option: SKY_TABLE */
-  if (SKY_TABLE[0]) {
-    status = stat (SKY_TABLE, &filestat);
-    if (status == 0) { /* file exists, are permissions OK? */
-      sky = SkyTableLoad (SKY_TABLE, VERBOSE);
-      if (sky == NULL) {
-	fprintf (stderr, "error loading sky table\n");
-	exit (1);
-      }
-      SkyTableSetDepth (sky, SKY_DEPTH);
-
-      /* write CATDIR copy */
-      sprintf (filename, "%s/SkyTable.fits", CATDIR);
-      check_permissions (filename);
-      SkyTableSave (sky, filename);
-      fits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions);
-      return (sky);
-    }
-  }
-
-  sky = SkyTableFromGSC (GSCFILE, SKY_DEPTH, VERBOSE);
-  if (sky == NULL) {
-    fprintf (stderr, "error loading sky table\n");
-    exit (1);
-  }
-
-  /* write CATDIR copy */
-  sprintf (filename, "%s/SkyTable.fits", CATDIR);
-  check_permissions (filename);
-  SkyTableSave (sky, filename);
-  fits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions);
-
-  return (sky);
-}
Index: trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c
===================================================================
--- trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c	(revision 5448)
@@ -44,8 +44,8 @@
 
   /* find correpsonding regions for image */
-  skylist = SkyListByImage (ServerSky, -1, image, mosaic);
+  RegisterMosaic (mosaic);
+  skylist = SkyListByImage (ServerSky, -1, image);
 
   /* reduce regions to existing subset, if necessary */
-  SkyListSetPath (skylist, CATDIR);
   if (options[0].only_match || options[0].existing_regions) {
     SkyList *tmp;
Index: trunk/Ohana/src/addstar/src/UpdateDatabase_Refcat.c
===================================================================
--- trunk/Ohana/src/addstar/src/UpdateDatabase_Refcat.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/UpdateDatabase_Refcat.c	(revision 5448)
@@ -6,11 +6,5 @@
   Catalog catalog;
   Stars *stars, **subset;
-  // SkyTable *sky;
   SkyList *skylist;
-
-  /* this should be loaded by addstard on start -- keep static? */
-  /* need to load the correct sky table (GSC default or local verison) */
-  /* XXX EAM : check on memory usage */
-  // sky = SkyTableFromGSC (GSCFILE, SKY_DEPTH, VERBOSE);
 
   if (options[0].update) {
@@ -48,5 +42,4 @@
 
   /* reduce regions to existing subset, if necessary */
-  SkyListSetPath (skylist, CATDIR);
   if (options[0].only_match || options[0].existing_regions) {
     SkyList *tmp;
Index: trunk/Ohana/src/addstar/src/addstar.c
===================================================================
--- trunk/Ohana/src/addstar/src/addstar.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/addstar.c	(revision 5448)
@@ -23,5 +23,6 @@
   options = args (argc, argv, options);
 
-  sky = SkyTableLoadOptimal ();
+  sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, SKY_DEPTH, VERBOSE);
+  SkyTableSetFilenames (sky, CATDIR, "cpt");
   
   stars = NULL;
@@ -44,5 +45,6 @@
     stars = gstars (argv[1], &Nstars, options.photcode, &image);
     if ((DUMP != NULL) && !strcmp (DUMP, "rawstars")) dump_rawstars (stars, Nstars);
-    skylist = SkyListByImage (sky, -1, &image, MOSAIC);
+    RegisterMosaic (MOSAIC);
+    skylist = SkyListByImage (sky, -1, &image);
     overlap = gimages (&db, &image, MOSAIC, &Noverlap);
     break;
Index: trunk/Ohana/src/addstar/src/addstard.c
===================================================================
--- trunk/Ohana/src/addstar/src/addstard.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/addstard.c	(revision 5448)
@@ -11,6 +11,7 @@
   args_server (argc, argv);
 
-  /* store the sky table in a global? */
-  ServerSky = SkyTableLoadOptimal ();
+  /* store the sky table in a global for internal use */
+  ServerSky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, SKY_DEPTH, VERBOSE);
+  SkyTableSetFilename (ServerSky, CATDIR, "cpt");
 
   /* if we separate the incoming data from db update, spawn db thread here */
Index: trunk/Ohana/src/addstar/src/get2mass.c
===================================================================
--- trunk/Ohana/src/addstar/src/get2mass.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/get2mass.c	(revision 5448)
@@ -56,5 +56,5 @@
 
   int Nregions, NREGIONS;
-  char accelfile[1024], line[256], filename[128];
+  char accelfile[1024], line[256], filename[128], datafile[256];
   FILE *f;
   double Rs, Re, Ds, De;
@@ -83,5 +83,6 @@
     if (Ds > patch[0].Dmax) continue;
     if (De < patch[0].Dmin) continue;
-    sprintf (regions[Nregions].name, "%s/%s", path, filename);
+    sprintf (datafile, "%s/%s", path, filename);
+    regions[Nregions].filename = strcreate (datafile);
     regions[Nregions].Rmin = Rs;
     regions[Nregions].Rmax = Re;
Index: trunk/Ohana/src/addstar/src/get2mass_as.c
===================================================================
--- trunk/Ohana/src/addstar/src/get2mass_as.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/get2mass_as.c	(revision 5448)
@@ -51,5 +51,5 @@
   if (!FilterSkip) Shutdown ("invalid photcode %s", GetPhotcodeNamebyCode(photcode));
 
-  filename = region[0].name;
+  filename = region[0].filename;
   gf = gzopen (filename, "rb");
   if (gf == NULL) Shutdown ("can't read 2mass data file: %s", filename);
Index: trunk/Ohana/src/addstar/src/get2mass_dr2.c
===================================================================
--- trunk/Ohana/src/addstar/src/get2mass_dr2.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/get2mass_dr2.c	(revision 5448)
@@ -27,5 +27,5 @@
   fprintf (stderr, "overlap: %f - %f, %f - %f\n", RA0, RA1, DEC0, DEC1);
 
-  filename = region[0].name;
+  filename = region[0].filename;
   gf = gzopen (filename, "rb");
   if (gf == NULL) Shutdown ("can't read 2mass data file: %s", filename);
Index: trunk/Ohana/src/addstar/src/getgsc.c
===================================================================
--- trunk/Ohana/src/addstar/src/getgsc.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/getgsc.c	(revision 5448)
@@ -18,6 +18,6 @@
   /* load regions from GSC table, restrict to patch */
   sky = SkyTableFromGSC (GSCFILE, 2, VERBOSE);
+  SkyTableSetPath (sky, GSCDIR, "cpt");
   skylist = SkyListByPatch (sky, -1, patch);
-  SkyListSetPath (skylist, GSCDIR);
   
   Nstars = 0;
@@ -25,5 +25,5 @@
   
   for (i = 0; i < skylist[0].Nregions; i++) {
-    gsc = rd_gsc (skylist[0].regions[i][0].name, &Ngsc);
+    gsc = rd_gsc (skylist[0].regions[i][0].filename, &Ngsc);
 
     REALLOCATE (stars, Stars, MAX (1, Nstars + Ngsc));
@@ -34,4 +34,5 @@
   }
   
+  SkyTableFree (sky);
   if (VERBOSE) fprintf (stderr, "%d stars from HST GSC\n", Nstars);
   *NSTARS = Nstars;
Index: trunk/Ohana/src/addstar/src/load_pt_catalog.c
===================================================================
--- trunk/Ohana/src/addstar/src/load_pt_catalog.c	(revision 5445)
+++ trunk/Ohana/src/addstar/src/load_pt_catalog.c	(revision 5448)
@@ -5,10 +5,8 @@
   char filename[256];
 
-  sprintf (filename, "%s/%s.cpt", path, region[0].name);
+  catalog[0].filename = region[0].filename;
 
-  check_permissions (filename);
-  if (VERBOSE) fprintf (stderr, "adding to %s\n", filename);
-
-  catalog[0].filename = strcreate (filename);
+  check_permissions (catalog[0].filename);
+  if (VERBOSE) fprintf (stderr, "adding to %s\n", catalog[0].filename);
     
   switch (lock_catalog (catalog, LCK_XCLD)) {
