Index: trunk/Ohana/src/addstar/doc/ChangeLog.txt
===================================================================
--- trunk/Ohana/src/addstar/doc/ChangeLog.txt	(revision 7039)
+++ trunk/Ohana/src/addstar/doc/ChangeLog.txt	(revision 7080)
@@ -1,2 +1,7 @@
+
+- addstar 1.7
+  * converted to gfits APIs (forces libfits 1.6)
+  * added the -resort option
+  * added timeout for large operations
 
 - addstar 1.6
Index: trunk/Ohana/src/addstar/src/RegionOps.c
===================================================================
--- trunk/Ohana/src/addstar/src/RegionOps.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/RegionOps.c	(revision 7080)
@@ -39,10 +39,10 @@
   /* init & load in table data */
   table.header = &theader;
-  if (!fits_fread_header (f, &header))           Shutdown ("can't read primary header for GSC Region table"); 
-  if (!fits_fread_matrix (f, &matrix, &header))  Shutdown ("can't read primary matrix for GSC Region table");
-  if (!fits_fread_ftable (f, &table, "REGIONS")) Shutdown ("can't read GSC Region table");
-
-  fits_scan (table.header, "NAXIS1", "%d", 1, &Nx);
-  fits_scan (table.header, "NAXIS2", "%d", 1, &Ny);
+  if (!gfits_fread_header (f, &header))           Shutdown ("can't read primary header for GSC Region table"); 
+  if (!gfits_fread_matrix (f, &matrix, &header))  Shutdown ("can't read primary matrix for GSC Region table");
+  if (!gfits_fread_ftable (f, &table, "REGIONS")) Shutdown ("can't read GSC Region table");
+
+  gfits_scan (table.header, "NAXIS1", "%d", 1, &Nx);
+  gfits_scan (table.header, "NAXIS2", "%d", 1, &Ny);
 
   Nregions = 0;
Index: trunk/Ohana/src/addstar/src/Shutdown.c
===================================================================
--- trunk/Ohana/src/addstar/src/Shutdown.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/Shutdown.c	(revision 7080)
@@ -22,5 +22,5 @@
 
   SetProtect (TRUE);
-  fits_db_close (db);
+  gfits_db_close (db);
   fprintf (stderr, "ERROR: addstar halted\n");
   exit (1);
Index: trunk/Ohana/src/addstar/src/args.c
===================================================================
--- trunk/Ohana/src/addstar/src/args.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/args.c	(revision 7080)
@@ -106,5 +106,5 @@
 
     remove_argument (N, &argc, argv);
-    if (!fits_read_header (argv[N], &header)) {
+    if (!gfits_read_header (argv[N], &header)) {
       fprintf (stderr, "ERROR: can't read header for mosaic %s\n", argv[N]);
       exit (1);
@@ -119,5 +119,5 @@
     }
     remove_argument (N, &argc, argv);
-    fits_free_header (&header);
+    gfits_free_header (&header);
     options.mosaic = TRUE;
   }
Index: trunk/Ohana/src/addstar/src/args_client.c
===================================================================
--- trunk/Ohana/src/addstar/src/args_client.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/args_client.c	(revision 7080)
@@ -69,5 +69,5 @@
 
     remove_argument (N, &argc, argv);
-    if (!fits_read_header (argv[N], &header)) {
+    if (!gfits_read_header (argv[N], &header)) {
       fprintf (stderr, "ERROR: can't read header for mosaic %s\n", argv[N]);
       exit (1);
@@ -82,5 +82,5 @@
     }
     remove_argument (N, &argc, argv);
-    fits_free_header (&header);
+    gfits_free_header (&header);
     options.mosaic = TRUE;
   }
Index: trunk/Ohana/src/addstar/src/gcatalog.c
===================================================================
--- trunk/Ohana/src/addstar/src/gcatalog.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/gcatalog.c	(revision 7080)
@@ -14,5 +14,5 @@
 
   /* should this be moved into save_catalog?? */
-  status = fits_scan (&catalog[0].header, "SORTED", "%t", 1, &catalog[0].sorted);
+  status = gfits_scan (&catalog[0].header, "SORTED", "%t", 1, &catalog[0].sorted);
   if (!status) catalog[0].sorted = TRUE;
   /* XXX EAM - is this a good choice?  should the default be 'FALSE'? */
Index: trunk/Ohana/src/addstar/src/gimages.c
===================================================================
--- trunk/Ohana/src/addstar/src/gimages.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/gimages.c	(revision 7080)
@@ -26,7 +26,7 @@
     Shutdown ("can't read image catalog %s", db[0].filename);
   }
-  timage = fits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
+  timage = gfits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
 
-  fits_scan (&db[0].header, "ZERO_PT", "%lf", 1, &zeropt);
+  gfits_scan (&db[0].header, "ZERO_PT", "%lf", 1, &zeropt);
   if (fabs (ZeroPt - zeropt) > 1e-4) {
     Shutdown ("zero point in image (%f:%s) inconsistent with zero point in catalog (%f)",
Index: trunk/Ohana/src/addstar/src/gstars.c
===================================================================
--- trunk/Ohana/src/addstar/src/gstars.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/gstars.c	(revision 7080)
@@ -11,5 +11,5 @@
   Header header;
 
-  if (!fits_read_header (file, &header)) {
+  if (!gfits_read_header (file, &header)) {
     fprintf (stderr, "ERROR: can't read header for %s\n", file);
     exit (1);
@@ -27,5 +27,5 @@
   }
   itmp = 0;
-  fits_scan (&header, "NASTRO",   "%d", 1, &itmp);
+  gfits_scan (&header, "NASTRO",   "%d", 1, &itmp);
   if ((itmp == 0) && !ACCEPT_ASTROM) {
     fprintf (stderr, "ERROR: bad astrometric solution in header\n");
@@ -45,5 +45,5 @@
     
   /* get ST (used for airmass calculation) */
-  fits_scan (&header, STKeyword, "%s", 1, line);
+  gfits_scan (&header, STKeyword, "%s", 1, line);
   /* remove ':' characters */
   for (c = strchr (line, ':'); c != (char *) NULL; c = strchr (line, ':')) { *c = ' '; }
@@ -53,12 +53,12 @@
 
   /* CERROR in data file is in arcsec */
-  if (!fits_scan (&header, "CERROR",   "%lf", 1, &tmp)) tmp = 1.0;
+  if (!gfits_scan (&header, "CERROR",   "%lf", 1, &tmp)) tmp = 1.0;
   image[0].cerror = tmp * 50.0;
-  fits_scan (&header, "NAXIS1",   "%hd", 1, &image[0].NX); 
-  fits_scan (&header, "NAXIS2",   "%hd", 1, &image[0].NY);
+  gfits_scan (&header, "NAXIS1",   "%hd", 1, &image[0].NX); 
+  gfits_scan (&header, "NAXIS2",   "%hd", 1, &image[0].NY);
  
   /* get photcode from header */
   if (photcode == 0) {
-    if (!fits_scan (&header, "PHOTCODE", "%s", 1, photname)) {
+    if (!gfits_scan (&header, "PHOTCODE", "%s", 1, photname)) {
       fprintf (stderr, "ERROR: photcode not supplied in header\n");
       exit (1);
@@ -78,45 +78,45 @@
   image[0].NX -= XOVERSCAN;
   image[0].NY -= YOVERSCAN;
-  fits_scan (&header, ExptimeKeyword,  "%lf", 1, &tmp);
+  gfits_scan (&header, ExptimeKeyword,  "%lf", 1, &tmp);
   image[0].exptime = tmp;
   
   /*** why are we no longer using APMIFIT?? ***/
   tmp = 0;
-  /* fits_scan (&header, "APMIFIT",  "%lf", 1, &tmp); */
+  /* gfits_scan (&header, "APMIFIT",  "%lf", 1, &tmp); */
   image[0].apmifit_PS = tmp;
 
   tmp = 0;
-  /* fits_scan (&header, "dAPMIFIT", "%lf", 1, &tmp); */
+  /* gfits_scan (&header, "dAPMIFIT", "%lf", 1, &tmp); */
   image[0].dapmifit_PS = tmp;
 
   tmp = 0;
-  fits_scan (&header, "FLIMIT",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FLIMIT",   "%lf", 1, &tmp);
   image[0].detection_limit = tmp * 10.0;
 
   tmp = 0;
-  fits_scan (&header, "FSATUR",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FSATUR",   "%lf", 1, &tmp);
   image[0].saturation_limit = tmp * 10.0;
 
   tmp = 0;
-  fits_scan (&header, "FWHM_X",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FWHM_X",   "%lf", 1, &tmp);
   image[0].fwhm_x = tmp * 25.0 * image[0].coords.cdelt1 * 3600.0;
 
   tmp = 0;
-  fits_scan (&header, "FWHM_Y",   "%lf", 1, &tmp);
+  gfits_scan (&header, "FWHM_Y",   "%lf", 1, &tmp);
   image[0].fwhm_y = tmp * 25.0 * image[0].coords.cdelt1 * 3600.0;
 
-  if (!fits_scan (&header, "TZERO",   "%d",  1, &image[0].tzero)) {
+  if (!gfits_scan (&header, "TZERO",   "%d",  1, &image[0].tzero)) {
     image[0].tzero = parse_time (&header);
   }
 
   tmp = 0;
-  fits_scan (&header, "TRATE",   "%lf", 1, &tmp);
+  gfits_scan (&header, "TRATE",   "%lf", 1, &tmp);
   image[0].trate = 10000 * tmp;
 
   tmp = 0;
-  fits_scan (&header, AirmassKeyword, "%lf", 1, &tmp);
+  gfits_scan (&header, AirmassKeyword, "%lf", 1, &tmp);
   image[0].secz_PS = MIN (NO_MAG, tmp);
 
-  if (!fits_scan (&header, CCDNumKeyword, "%d", 1, &itmp)) {
+  if (!gfits_scan (&header, CCDNumKeyword, "%d", 1, &itmp)) {
     image[0].ccdnum = 0xff;
   } else {
@@ -124,5 +124,5 @@
   }
 
-  fits_scan (&header, "ZERO_PT", "%lf", 1, &ZeroPt);
+  gfits_scan (&header, "ZERO_PT", "%lf", 1, &ZeroPt);
   SetZeroPoint (ZeroPt);
 
@@ -134,5 +134,5 @@
 
   /* find expected number of stars */
-  if (!fits_scan (&header, "NSTARS", "%d", 1, &image[0].nstar)) {
+  if (!gfits_scan (&header, "NSTARS", "%d", 1, &image[0].nstar)) {
     fprintf (stderr, "ERROR: can't get NSTARS from header\n");
     exit (1);
@@ -154,5 +154,5 @@
     
     sky = 0;
-    fits_scan (&header, "HISTORY", "%S", 10, line);
+    gfits_scan (&header, "HISTORY", "%S", 10, line);
     p = strstr (line, "|I=");
     if (p != (char *) NULL) {
@@ -178,7 +178,7 @@
     /* read from FITS table or from text table */
     extend = FALSE;
-    fits_scan (&header, "EXTEND",  "%t", 1, &extend);
+    gfits_scan (&header, "EXTEND",  "%t", 1, &extend);
     if (extend && !TEXTMODE) {
-      Nbytes = fits_matrix_size (&header);
+      Nbytes = gfits_matrix_size (&header);
       fseek (f, Nbytes, SEEK_CUR); 
       rdstars = rfits (f, &image[0].nstar);
@@ -189,5 +189,5 @@
     } else {
       /* allocate space for stars */
-      if (!fits_scan (&header, "NSTARS", "%d", 1, &image[0].nstar)) {
+      if (!gfits_scan (&header, "NSTARS", "%d", 1, &image[0].nstar)) {
 	fprintf (stderr, "ERROR: failed to find NSTARS\n");
 	exit (1);
Index: trunk/Ohana/src/addstar/src/image-db.c
===================================================================
--- trunk/Ohana/src/addstar/src/image-db.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/image-db.c	(revision 7080)
@@ -6,5 +6,5 @@
 
   /* create new header */
-  fits_init_header (&db[0].header);
+  gfits_init_header (&db[0].header);
 
   /* set the recommended mode */
@@ -16,10 +16,10 @@
     db[0].header.Naxis[0] = 1;
     db[0].header.Naxis[1] = 1;
-    fits_create_header (&db[0].header);
+    gfits_create_header (&db[0].header);
     db[0].mode = DVO_MODE_RAW;
   }
   if (!strcasecmp (CATMODE, "MEF") || !strcasecmp (CATMODE, "SPLIT")) {
     db[0].header.extend   = TRUE;
-    fits_create_header (&db[0].header);
+    gfits_create_header (&db[0].header);
     db[0].mode = DVO_MODE_MEF;
   }
@@ -41,15 +41,15 @@
   }
 
-  fits_create_matrix (&db[0].header, &db[0].matrix);
-  fits_table_set_Image (&db[0].ftable, NULL, 0);
+  gfits_create_matrix (&db[0].header, &db[0].matrix);
+  gfits_table_set_Image (&db[0].ftable, NULL, 0);
 
   /* assign Zero Point provided by first image in dB */
-  fits_modify (&db[0].header, "ZERO_PT", "%lf", 1, ZeroPt);
-  fits_modify (&db[0].header, "NIMAGES", "%d", 1, 0);
+  gfits_modify (&db[0].header, "ZERO_PT", "%lf", 1, ZeroPt);
+  gfits_modify (&db[0].header, "NIMAGES", "%d", 1, 0);
 
-  if (db[0].format == DVO_FORMAT_INTERNAL)  fits_modify (&db[0].header, "FORMAT", "%s", 1, "INTERNAL");
-  if (db[0].format == DVO_FORMAT_LONEOS)    fits_modify (&db[0].header, "FORMAT", "%s", 1, "LONEOS");
-  if (db[0].format == DVO_FORMAT_ELIXIR)    fits_modify (&db[0].header, "FORMAT", "%s", 1, "ELIXIR");
-  if (db[0].format == DVO_FORMAT_PANSTARRS) fits_modify (&db[0].header, "FORMAT", "%s", 1, "PANSTARRS");
-  if (db[0].format == DVO_FORMAT_PMTEST)    fits_modify (&db[0].header, "FORMAT", "%s", 1, "PMTEST");
+  if (db[0].format == DVO_FORMAT_INTERNAL)  gfits_modify (&db[0].header, "FORMAT", "%s", 1, "INTERNAL");
+  if (db[0].format == DVO_FORMAT_LONEOS)    gfits_modify (&db[0].header, "FORMAT", "%s", 1, "LONEOS");
+  if (db[0].format == DVO_FORMAT_ELIXIR)    gfits_modify (&db[0].header, "FORMAT", "%s", 1, "ELIXIR");
+  if (db[0].format == DVO_FORMAT_PANSTARRS) gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PANSTARRS");
+  if (db[0].format == DVO_FORMAT_PMTEST)    gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PMTEST");
 }
Index: trunk/Ohana/src/addstar/src/mkcatalog.c
===================================================================
--- trunk/Ohana/src/addstar/src/mkcatalog.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/mkcatalog.c	(revision 7080)
@@ -31,5 +31,5 @@
   }
 
-  fits_init_header (&catalog[0].header);
+  gfits_init_header (&catalog[0].header);
 
   if (catalog[0].catmode == DVO_MODE_RAW) {
@@ -41,5 +41,5 @@
   }
 
-  fits_create_header (&catalog[0].header);
+  gfits_create_header (&catalog[0].header);
   
   if (catalog[0].catmode == DVO_MODE_SPLIT) {
@@ -50,6 +50,6 @@
     /* define measure catalog file */
     ALLOCATE (catalog[0].measure_catalog, Catalog, 1);
-    fits_init_header (&catalog[0].measure_catalog[0].header);
-    fits_create_header (&catalog[0].measure_catalog[0].header);
+    gfits_init_header (&catalog[0].measure_catalog[0].header);
+    gfits_create_header (&catalog[0].measure_catalog[0].header);
     ALLOCATE (catalog[0].measure_catalog[0].filename, char, length);
     sprintf (catalog[0].measure_catalog[0].filename, "%s/%s.cpm", path, root);
@@ -60,11 +60,11 @@
     }
     file = filebasename (catalog[0].measure_catalog[0].filename);
-    fits_modify (&catalog[0].header, "MEASURE", "%s", 1, file);
+    gfits_modify (&catalog[0].header, "MEASURE", "%s", 1, file);
     free (file);
 
     /* define missing catalog file */
     ALLOCATE (catalog[0].missing_catalog, Catalog, 1);
-    fits_init_header (&catalog[0].missing_catalog[0].header);
-    fits_create_header (&catalog[0].missing_catalog[0].header);
+    gfits_init_header (&catalog[0].missing_catalog[0].header);
+    gfits_create_header (&catalog[0].missing_catalog[0].header);
     ALLOCATE (catalog[0].missing_catalog[0].filename, char, length);
     sprintf (catalog[0].missing_catalog[0].filename, "%s/%s.cpn", path, root);
@@ -74,11 +74,11 @@
     }
     file = filebasename (catalog[0].missing_catalog[0].filename);
-    fits_modify (&catalog[0].header, "MISSING", "%s", 1, file);
+    gfits_modify (&catalog[0].header, "MISSING", "%s", 1, file);
     free (file);
 
     /* define secfilt catalog file */
     ALLOCATE (catalog[0].secfilt_catalog, Catalog, 1);
-    fits_init_header (&catalog[0].secfilt_catalog[0].header);
-    fits_create_header (&catalog[0].secfilt_catalog[0].header);
+    gfits_init_header (&catalog[0].secfilt_catalog[0].header);
+    gfits_create_header (&catalog[0].secfilt_catalog[0].header);
     ALLOCATE (catalog[0].secfilt_catalog[0].filename, char, length);
     sprintf (catalog[0].secfilt_catalog[0].filename, "%s/%s.cps", path, root);
@@ -88,5 +88,5 @@
     }
     file = filebasename (catalog[0].secfilt_catalog[0].filename);
-    fits_modify (&catalog[0].header, "SECFILT", "%s", 1, file);
+    gfits_modify (&catalog[0].header, "SECFILT", "%s", 1, file);
     free (file);
     free (path);
@@ -95,13 +95,13 @@
 
   /* write RA,DEC range in header */
-  fits_modify (&catalog[0].header, "RA0",  "%lf", 1, region[0].Rmin);
-  fits_modify (&catalog[0].header, "DEC0", "%lf", 1, region[0].Dmin);
-  fits_modify (&catalog[0].header, "RA1",  "%lf", 1, region[0].Rmax);
-  fits_modify (&catalog[0].header, "DEC1", "%lf", 1, region[0].Dmax);
+  gfits_modify (&catalog[0].header, "RA0",  "%lf", 1, region[0].Rmin);
+  gfits_modify (&catalog[0].header, "DEC0", "%lf", 1, region[0].Dmin);
+  gfits_modify (&catalog[0].header, "RA1",  "%lf", 1, region[0].Rmax);
+  gfits_modify (&catalog[0].header, "DEC1", "%lf", 1, region[0].Dmax);
 
   /* write creation date in header */
   str_to_time ("now", &now);
   line = sec_to_date (now);
-  fits_modify (&catalog[0].header, "DATE", "%s", 1, line);
+  gfits_modify (&catalog[0].header, "DATE", "%s", 1, line);
   free (line);
 
Index: trunk/Ohana/src/addstar/src/parse_time.c
===================================================================
--- trunk/Ohana/src/addstar/src/parse_time.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/parse_time.c	(revision 7080)
@@ -14,5 +14,5 @@
   if (strcasecmp (JDKeyword, "NONE")) {
     uppercase (JDKeyword);
-    fits_scan (header, JDKeyword, "%lf", 1, &jd);
+    gfits_scan (header, JDKeyword, "%lf", 1, &jd);
     Nsec = (jd - 2440587.5)*86400;
     return (Nsec);
@@ -22,5 +22,5 @@
   if (strcasecmp (MJDKeyword, "NONE")) {
     uppercase (MJDKeyword);
-    fits_scan (header, MJDKeyword, "%lf", 1, &jd);
+    gfits_scan (header, MJDKeyword, "%lf", 1, &jd);
     Nsec = (jd - 40587.0)*86400;
     return (Nsec);
@@ -29,5 +29,5 @@
   /* get UT and DATE */
   uppercase (UTKeyword);
-  fits_scan (header, UTKeyword, "%s", 1, line);
+  gfits_scan (header, UTKeyword, "%s", 1, line);
   /* remove ':' characters */
   for (c = strchr (line, 0x3a); c != (char *) NULL; c = strchr (line, 0x3a)) { *c = ' '; }
@@ -68,5 +68,5 @@
   /* parse date entry */
   uppercase (DateKeyword);
-  fits_scan (header, DateKeyword, "%s",  1, line);
+  gfits_scan (header, DateKeyword, "%s",  1, line);
   /* remove possible separators: ':', '/' '.', '-' */
   for (c = strchr (line, 0x3a); c != (char *) NULL; c = strchr (line, 0x3a)) { *c = ' '; }
Index: trunk/Ohana/src/addstar/src/rfits.c
===================================================================
--- trunk/Ohana/src/addstar/src/rfits.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/rfits.c	(revision 7080)
@@ -14,7 +14,7 @@
   /* init & load in table data */
   table.header   = &theader;
-  if (!fits_fread_ftable (f, &table, "SMPFILE")) goto escape;
+  if (!gfits_fread_ftable (f, &table, "SMPFILE")) goto escape;
 
-  smpdata = fits_table_get_SMPData (&table, &Nstars, NULL);
+  smpdata = gfits_table_get_SMPData (&table, &Nstars, NULL);
 
   ALLOCATE (stars, Stars, Nstars);
Index: trunk/Ohana/src/addstar/src/wcatalog.c
===================================================================
--- trunk/Ohana/src/addstar/src/wcatalog.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/wcatalog.c	(revision 7080)
@@ -7,5 +7,5 @@
 
   /* should this be moved into save_catalog?? */
-  fits_modify (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
+  gfits_modify (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
 
   /* if partial load, must use update */
@@ -40,5 +40,5 @@
     catalog[0].Nsecfilt = 0;
   }
-  fits_free_header (&catalog[0].header);
+  gfits_free_header (&catalog[0].header);
 }
 
Index: trunk/Ohana/src/addstar/src/wimage.c
===================================================================
--- trunk/Ohana/src/addstar/src/wimage.c	(revision 7039)
+++ trunk/Ohana/src/addstar/src/wimage.c	(revision 7080)
@@ -12,11 +12,11 @@
   /* adjust header */
   Nimages = 0;
-  fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
+  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
   Nimages ++;
-  fits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
+  gfits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
 
-  fits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
+  gfits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
   for (i = 0; i < Nimage; i++) {
-    fits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
+    gfits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
   }
 
