Index: /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/include/addstar.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/include/addstar.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/include/addstar.h	(revision 27368)
@@ -158,5 +158,5 @@
 void       SetProtect             PROTO((int mode));
 int        SetSignals             PROTO((void));
-int        Shutdown               PROTO((char *message, ...));
+int        Shutdown               PROTO((char *message, ...)) OHANA_FORMAT(printf, 1, 2);
 void       TrapSignal             PROTO((int sig));
 float      airmass                PROTO((float secz_image, double ra, double dec, double st, double latitude));
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/include/skycells.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/include/skycells.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/include/skycells.h	(revision 27368)
@@ -78,5 +78,5 @@
 void         SetProtect                	    PROTO((int mode));
 int          SetSignals                	    PROTO((void));
-int          Shutdown                  	    PROTO((char *message, ...); ) 
+int          Shutdown                  	    PROTO((char *message, ...)) OHANA_FORMAT(printf, 1, 2);
 void         TrapSignal                	    PROTO((int sig));
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/src/GetFileMode.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/src/GetFileMode.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/src/GetFileMode.c	(revision 27368)
@@ -4,19 +4,19 @@
 int GetFileMode (Header *header) {
 
-  char ctype[80];
+  char ctype[80], ctmp;
   int Naxis;
   int simple, extend, haveNaxis, haveCTYPE;
-  int tmp, havePHOT_VER, haveTARG_VER;
+  int havePHOT_VER, haveTARG_VER;
 
-  gfits_scan (header, "SIMPLE", "%t", 1, &simple);
+  gfits_scan_alt (header, "SIMPLE", "%t", 1, &simple);
   haveNaxis = gfits_scan (header, "NAXIS",  "%d", 1, &Naxis);
   haveCTYPE = gfits_scan (header, "CTYPE1", "%s", 1, ctype);
 
-  gfits_scan (header, "EXTEND", "%t", 1, &extend);
+  gfits_scan_alt (header, "EXTEND", "%t", 1, &extend);
     
   // SDSS tsObj files have a version number for the PHOTO and 
   // TS (target selection) pipelines present as header keywords
-  havePHOT_VER = gfits_scan (header, "PHOT_VER", "%s", 1, &tmp);
-  haveTARG_VER = gfits_scan (header, "TARG_VER", "%s", 1, &tmp);
+  havePHOT_VER = gfits_scan (header, "PHOT_VER", "%s", 1, &ctmp);
+  haveTARG_VER = gfits_scan (header, "TARG_VER", "%s", 1, &ctmp);
   if (havePHOT_VER && haveTARG_VER) return SDSS_OBJ;
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/src/sky_tessalation.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/src/sky_tessalation.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/src/sky_tessalation.c	(revision 27368)
@@ -951,5 +951,5 @@
 
   // reset db[0].theader(NAXIS1) to match Image
-  gfits_modify (&db[0].theader, "NAXIS1", "%d", 1, sizeof(Image));
+  gfits_modify (&db[0].theader, "NAXIS1", "%lld", 1, (long long) sizeof(Image));
   db[0].theader.Naxis[0] = sizeof(Image);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/test/relastro.dvo
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/test/relastro.dvo	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/addstar/test/relastro.dvo	(revision 27368)
@@ -52,5 +52,5 @@
 
   for N 0 3
-    exec relastro -D CATDIR catdir.test -region {$RA-1.0} {$RA+1.0} {$DEC-1.0} {$DEC+1.0} -update-objects -update
+    exec relastro -D CATDIR catdir.test -region {$RA-1.0} {$RA+1.0} {$DEC-1.0} {$DEC+1.0} -update-objects -update -plot -plotdelay 1.0
     mextract RA DEC RA:AVE DEC:AVE dR dD mag
     create n 0 RA[]
@@ -77,5 +77,5 @@
     end
   
-    exec relastro -D CATDIR catdir.test -region {$RA-1.0} {$RA+1.0} {$DEC-1.0} {$DEC+1.0} -update-simple -update
+    exec relastro -D CATDIR catdir.test -region {$RA-1.0} {$RA+1.0} {$DEC-1.0} {$DEC+1.0} -update-simple -update -plot -plotdelay 1.0
     mextract RA DEC RA:AVE DEC:AVE dR dD
     create n 0 RA[]
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/delstar/include/delstar.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/delstar/include/delstar.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/delstar/include/delstar.h	(revision 27368)
@@ -44,5 +44,5 @@
 void       SetProtect             PROTO((int mode));
 int        SetSignals             PROTO((void));
-int        Shutdown               PROTO((char *format, ...));
+int        Shutdown               PROTO((char *format, ...)) OHANA_FORMAT(printf, 1, 2);
 void       TrapSignal             PROTO((int sig));
 int        args                   PROTO((int *argc, char **argv));
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/delstar/src/delete_imagename.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/delstar/src/delete_imagename.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/delstar/src/delete_imagename.c	(revision 27368)
@@ -80,6 +80,6 @@
   // gfits_table_set_Image (&db[0].ftable, outimage, Noutimage);
 
-  gfits_modify (&db[0].theader, "NAXIS2", "%lld", 1, Noutimage);
-  gfits_modify (&db[0].header, "NIMAGES", "%lld", 1, Noutimage);
+  gfits_modify (&db[0].theader, "NAXIS2", "%lld", 1, (long long) Noutimage);
+  gfits_modify (&db[0].header, "NIMAGES", "%lld", 1, (long long) Noutimage);
   db[0].theader.Naxis[1] = Noutimage;
   db[0].ftable.buffer = (char *) outimage;
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/delstar/src/gimages.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/delstar/src/gimages.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/delstar/src/gimages.c	(revision 27368)
@@ -53,6 +53,6 @@
   }      
   if (!haveNx && !haveNy) {
-      haveNx = gfits_scan (&header, "ZNAXIS1",   "%d", 1, &image[0].NX);
-      haveNy = gfits_scan (&header, "ZNAXIS2",   "%d", 1, &image[0].NY);
+      haveNx = gfits_scan (&header, "ZNAXIS1",   "%hd", 1, &image[0].NX);
+      haveNy = gfits_scan (&header, "ZNAXIS2",   "%hd", 1, &image[0].NY);
   }
   if (!haveNx || !haveNy) {
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/dvomerge/include/dvomerge.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/dvomerge/include/dvomerge.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/dvomerge/include/dvomerge.h	(revision 27368)
@@ -35,5 +35,5 @@
 void       SetProtect             PROTO((int mode));
 void       TrapSignal             PROTO((int sig));
-int        Shutdown               PROTO((char *format, ...));
+int        Shutdown               PROTO((char *format, ...)) OHANA_FORMAT(printf, 1, 2);
 
 void       usage                  PROTO((void));
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/dvosplit/include/dvosplit.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/dvosplit/include/dvosplit.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/dvosplit/include/dvosplit.h	(revision 27368)
@@ -35,5 +35,5 @@
 void       SetProtect             PROTO((int mode));
 void       TrapSignal             PROTO((int sig));
-int        Shutdown               PROTO((char *format, ...));
+int        Shutdown               PROTO((char *format, ...) OHANA_FORMAT(printf, 1, 2));
 int        args                   PROTO((int argc, char **argv));
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/fixcat/src/wcatalog.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/fixcat/src/wcatalog.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/fixcat/src/wcatalog.c	(revision 27368)
@@ -38,5 +38,5 @@
   gfits_modify (&catalog[0].header, "NMISS",  "%lld", 1, catalog[0].Nmissing);
 
-  gfits_modify (&catalog[0].header, "MARKSTAR", "%t", 1, TRUE);
+  gfits_modify_alt (&catalog[0].header, "MARKSTAR", "%t", 1, TRUE);
 
   nitems = Fwrite (catalog[0].header.buffer, 1, catalog[0].header.datasize, f, "char");
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/gastro/src/gheader.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/gastro/src/gheader.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/gastro/src/gheader.c	(revision 27368)
@@ -22,10 +22,10 @@
   if (Nmatch < 2) {
     gfits_modify (&header, "NASTRO", "%d", 1, 0);
-    gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+    gfits_modify_alt (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
     goto skipstuff;
   }
   
   gfits_modify (&header, "NASTRO", "%d", 1, Nmatch);
-  gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+  gfits_modify_alt (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
 
   /*** use PutCoords to update header ***/
@@ -73,7 +73,7 @@
   }
   gfits_modify (&header, "CERROR", "%lf", 1, dR);
-  gfits_modify (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
+  gfits_modify_alt (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
   gfits_modify (&header, "CPRECISE", "%lf", 1, dR / sqrt(1.0*Nmatch));
-  gfits_modify (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
+  gfits_modify_alt (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
   gfits_modify (&header, "EQUINOX", "%lf", 1, 2000.0);
   /* we force equinox to be 2000.0 for all images */
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/gastro2/src/gheader2.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/gastro2/src/gheader2.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/gastro2/src/gheader2.c	(revision 27368)
@@ -21,5 +21,5 @@
       if (Target[0].answer.N < 6) {
 	gfits_modify (&header, "NASTRO", "%d", 1, 0);
-	gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+	gfits_modify_alt (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
 	goto skipstuff;
       }
@@ -28,5 +28,5 @@
       if (Target[0].answer.N < 12) {
 	gfits_modify (&header, "NASTRO", "%d", 1, 0);
-	gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+	gfits_modify_alt (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
 	goto skipstuff;
       }
@@ -35,5 +35,5 @@
       if (Target[0].answer.N < 20) {
 	gfits_modify (&header, "NASTRO", "%d", 1, 0);
-	gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+	gfits_modify_alt (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
 	goto skipstuff;
       }
@@ -45,5 +45,5 @@
   
   gfits_modify (&header, "NASTRO", "%d", 1, Target[0].answer.N);
-  gfits_modify (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
+  gfits_modify_alt (&header, "NASTRO", "%C", 1, "number of stars used for astrometry");
 
   /*** use PutCoords to update header ***/
@@ -52,7 +52,7 @@
   dR = fabs (Target[0].answer.dR*Target[0].coords.cdelt1*3600.0);
   gfits_modify (&header, "CERROR", "%lf", 1, dR);
-  gfits_modify (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
+  gfits_modify_alt (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
   gfits_modify (&header, "CPRECISE", "%lf", 1, dR / sqrt(1.0*Target[0].answer.N));
-  gfits_modify (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
+  gfits_modify_alt (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
   gfits_modify (&header, "EQUINOX", "%lf", 1, 2000.0);
   /* we force equinox to be 2000.0 for all images */
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/gastro2/src/gstars2.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/gastro2/src/gstars2.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/gastro2/src/gstars2.c	(revision 27368)
@@ -126,5 +126,5 @@
   /* Is NAXIS == 0 a better test?? */
   extend = FALSE;
-  gfits_scan (&Target[0].header, "NAXIS",  "%t", 1, &naxis);
+  gfits_scan_alt (&Target[0].header, "NAXIS",  "%t", 1, &naxis);
   if ((naxis == 0) && !TEXTMODE) {
     Nskip = gfits_data_size (&Target[0].header);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/dvoImageExtract.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/dvoImageExtract.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/dvoImageExtract.h	(revision 27368)
@@ -21,5 +21,5 @@
 int  args_extract    	 PROTO((int argc, char **argv));
 int  ConfigInit_extract  PROTO((int *argc, char **argv));
-int  Shutdown         	 PROTO((char *format, ...));
+int  Shutdown         	 PROTO((char *format, ...)) OHANA_FORMAT(printf, 1, 2);
 void TrapSignal       	 PROTO((int sig));
 void SetProtect       	 PROTO((int mode));
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/dvoImageOverlaps.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/dvoImageOverlaps.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/dvoImageOverlaps.h	(revision 27368)
@@ -24,5 +24,5 @@
 int  args_overlaps    	 PROTO((int argc, char **argv));
 int  ConfigInit_overlaps PROTO((int *argc, char **argv));
-int  Shutdown         PROTO((char *format, ...));
+int  Shutdown         PROTO((char *format, ...) OHANA_FORMAT(printf, 1, 2));
 void TrapSignal       PROTO((int sig));
 void SetProtect       PROTO((int mode));
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/dvoImagesAtCoords.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/dvoImagesAtCoords.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/dvoImagesAtCoords.h	(revision 27368)
@@ -39,5 +39,5 @@
 int  args_coords    	 PROTO((int argc, char **argv));
 int  ConfigInit_coords PROTO((int *argc, char **argv));
-int  Shutdown         PROTO((char *format, ...));
+int  Shutdown         PROTO((char *format, ...) OHANA_FORMAT(printf, 1, 2));
 void TrapSignal       PROTO((int sig));
 void SetProtect       PROTO((int mode));
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/getstar.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/getstar.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/include/getstar.h	(revision 27368)
@@ -37,5 +37,5 @@
 int  args             	     PROTO((int argc, char **argv));
 int  ConfigInit       	     PROTO((int *argc, char **argv));
-int  Shutdown         	     PROTO((char *format, ...));
+int  Shutdown         	     PROTO((char *format, ...)) OHANA_FORMAT(printf, 1, 2);
 int  load_pt_catalog  	     PROTO((Catalog *catalog, SkyRegion *region));
 int  select_by_region 	     PROTO((Catalog *output, Catalog *catalog, SkyRegion *region, int start, int end));
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/src/GetFileMode.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/src/GetFileMode.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/getstar/src/GetFileMode.c	(revision 27368)
@@ -8,9 +8,9 @@
   int simple, extend, haveNaxis, haveCTYPE;
 
-  gfits_scan (header, "SIMPLE", "%t", 1, &simple);
+  gfits_scan_alt (header, "SIMPLE", "%t", 1, &simple);
   haveNaxis = gfits_scan (header, "NAXIS",  "%d", 1, &Naxis);
   haveCTYPE = gfits_scan (header, "CTYPE1", "%s", 1, ctype);
 
-  gfits_scan (header, "EXTEND", "%t", 1, &extend);
+  gfits_scan_alt (header, "EXTEND", "%t", 1, &extend);
     
   if ((Naxis == 2) || !simple) {
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/imclean/src/wfits.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/imclean/src/wfits.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/imclean/src/wfits.c	(revision 27368)
@@ -10,5 +10,5 @@
   header[0].Naxes = 0;
   gfits_modify (header, "NAXIS",   "%d", 1, 0);
-  gfits_modify (header, "EXTEND",  "%t", 1, TRUE);
+  gfits_modify_alt (header, "EXTEND",  "%t", 1, TRUE);
   gfits_modify (header, "NEXTEND", "%d", 1, 1);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/detrend/imdef.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/detrend/imdef.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/detrend/imdef.c	(revision 27368)
@@ -43,5 +43,5 @@
   descriptor[0].mode = M_SPLIT;
   Extend = FALSE;
-  gfits_scan (&header, "EXTEND", "%t", 1, &Extend);
+  gfits_scan_alt (&header, "EXTEND", "%t", 1, &Extend);
   if (Extend) {
     descriptor[0].mode      = M_MEF;
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/imphot/rtext.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/imphot/rtext.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/imphot/rtext.c	(revision 27368)
@@ -10,5 +10,5 @@
   /* check that file size makes sense */
   Nimage = 0;
-  gfits_scan (&db[0].header, "NIMAGES", "%lld", 1, &Nimage);
+  gfits_scan (&db[0].header, "NIMAGES", "%lld", 1, (long long *) &Nimage);
   if (stat (db[0].filename, &filestatus) == -1) {
     if (VERBOSE) fprintf (stderr, "ERROR: failed to get status of image catalog\n");
@@ -41,5 +41,5 @@
   } 
   db[0].ftable.buffer = (char *) image;
-  gfits_modify (&db[0].theader, "NAXIS2", "%lld", 1, Nimage);
+  gfits_modify (&db[0].theader, "NAXIS2", "%lld", 1, (long long) Nimage);
   db[0].theader.Naxis[1] = Nimage;
   db[0].ftable.datasize = gfits_data_size (&db[0].theader);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/imreg/iminfo.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/imreg/iminfo.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/imreg/iminfo.c	(revision 27368)
@@ -42,5 +42,5 @@
 
   /* determine data layout (SINGLE, SPLIT, MEF, CUBE, SLICE) */
-  gfits_scan (&header, "EXTEND",  "%t", 1, &extend);
+  gfits_scan_alt (&header, "EXTEND",  "%t", 1, &extend);
   gfits_scan (&header, "NAXIS",  "%d", 1, &Naxes);
   if (extend) { /* MEF file */
@@ -68,5 +68,5 @@
 
   /* extract other relevant data from header */
-  gfits_scan (&header, ImagetypeKeyword,  "%s", 1, &Imagetype);
+  gfits_scan (&header, ImagetypeKeyword,  "%s", 1, (char *)&Imagetype);
 
   /* grab the image type : if not defined, set to 'none' */
@@ -108,5 +108,5 @@
       ohana_dms_to_ddd (&tmp, line);
       image[0].ra = 15*tmp;
-      gfits_scan (&header, DECSexigKeyword, "%s", 1, &line);
+      gfits_scan (&header, DECSexigKeyword, "%s", 1, (char *)&line);
       ohana_dms_to_ddd (&tmp, line);
       image[0].dec = tmp;
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/include/imregister.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/include/imregister.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/include/imregister.h	(revision 27368)
@@ -89,5 +89,5 @@
 
 void warn_scan (Header *header, char *field, char *format, int N, void *var);
-int gfits_scan_nchar (Header *header, int size, char *field, int N,...);
+int gfits_scan_nchar (Header *header, int size, char *field, int N,...) OHANA_FORMAT(scanf, 3, 5);
 void warn_scan_nchar (Header *header, int size, char *field, int N, void *var);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/src/convertimreg.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/src/convertimreg.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/imregister/src/convertimreg.c	(revision 27368)
@@ -41,5 +41,5 @@
 
   /* load existing data from database */
-  gfits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
+  gfits_scan (&header, "NIMAGES", "%lld", 1, (long long *) &Nimage);
   ALLOCATE (pimage, RegImage, Nimage);
   status = fread (pimage, sizeof(RegImage), Nimage, f);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/kapa2/src/LoadPicture.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/kapa2/src/LoadPicture.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/kapa2/src/LoadPicture.c	(revision 27368)
@@ -32,5 +32,5 @@
   gfits_init_header (&header);
   header.Naxes = 2;
-  KiiScanMessage (sock, "%d %d", &header.Naxis[0], &header.Naxis[1]);
+  KiiScanMessage (sock, "%lld %lld", (long long *) &header.Naxis[0], (long long *) &header.Naxis[1]);
 
   // internal image are 32 bit floats; sender must send in this format
@@ -41,5 +41,5 @@
 
   KiiScanMessage (sock, "%lf %lf %s %s",  &image[0].image[0].zero, &image[0].image[0].range, image[0].image[0].name, image[0].image[0].file);
-  KiiScanMessage (sock, "%lf %lf %lld", &image[0].image[0].min,  &image[0].image[0].max, &header.datasize);
+  KiiScanMessage (sock, "%lf %lf %lld", &image[0].image[0].min,  &image[0].image[0].max, (long long *) &header.datasize);
   KiiScanMessage (sock, "%lf %f %f %f %f", &image[0].image[0].coords.crval1, &image[0].image[0].coords.crpix1, &image[0].image[0].coords.cdelt1, &image[0].image[0].coords.pc1_1, &image[0].image[0].coords.pc1_2);
   KiiScanMessage (sock, "%lf %f %f %f %f", &image[0].image[0].coords.crval2, &image[0].image[0].coords.crpix2, &image[0].image[0].coords.cdelt2, &image[0].image[0].coords.pc2_1, &image[0].image[0].coords.pc2_2);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/kapa2/src/SetImageData.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/kapa2/src/SetImageData.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/kapa2/src/SetImageData.c	(revision 27368)
@@ -17,5 +17,5 @@
   
   // get image data from client 
-  KiiScanMessage (sock, "%lf %lf %s", 
+  KiiScanMessage (sock, "%lf %lf %s %s", 
 		  &image[0].image[0].zero, 
 		  &image[0].image[0].range, 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog.c	(revision 27368)
@@ -253,5 +253,5 @@
   }
   // check if the table has been sorted or not 
-  status = gfits_scan (&catalog[0].header, "SORTED", "%t", 1, &catalog[0].sorted);
+  status = gfits_scan_alt (&catalog[0].header, "SORTED", "%t", 1, &catalog[0].sorted);
   if (!status) catalog[0].sorted = TRUE;
 
@@ -302,5 +302,5 @@
 
   // set the 'sorted' header keyword
-  gfits_modify (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
+  gfits_modify_alt (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
 
   // XXX handle return status
@@ -327,5 +327,5 @@
 
   // set the 'sorted' header keyword
-  gfits_modify (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
+  gfits_modify_alt (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
 
   // XXX handle return status
@@ -353,5 +353,5 @@
   // set the 'sorted' header keyword
   catalog[0].sorted = FALSE;
-  gfits_modify (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
+  gfits_modify_alt (&catalog[0].header, "SORTED",  "%t", 1, catalog[0].sorted);
 
   /* update is only valid for catmode SPLIT */
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog_mef.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog_mef.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog_mef.c	(revision 27368)
@@ -3,5 +3,6 @@
 int dvo_catalog_load_mef (Catalog *catalog, int VERBOSE) {
   
-  off_t Nitems, Nbytes, Nexpect, Naverage, Nmeasure, Nmissing, Nsecfilt;
+  int Nsecfilt;
+  off_t Nitems, Nbytes, Nexpect, Naverage, Nmeasure, Nmissing;
   FILE *f;
 
@@ -23,8 +24,8 @@
   }
   /* get the components from the header */
-  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%lld", 1, &Naverage)) return (FALSE);
-  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%lld", 1, &Nmeasure)) return (FALSE);
-  if (!gfits_scan (&catalog[0].header, "NMISS",    "%lld", 1, &Nmissing)) return (FALSE);
-  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%lld", 1, &Nsecfilt)) Nsecfilt = 0;
+  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%lld", 1, (long long *) &Naverage)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%lld", 1, (long long *) &Nmeasure)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMISS",    "%lld", 1, (long long *) &Nmissing)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d",   1,               &Nsecfilt)) Nsecfilt = 0;
 
   /* the OBJID is a counter that uniquely defines an average entry and never changes.  if
@@ -207,5 +208,6 @@
   SecFilt *primary;
   SecFilt *secfilt;
-  off_t i, j, Nsecfilt, Nallfilt, Ntotal;
+  off_t i, j, Nallfilt, Ntotal;
+  int Nsecfilt;
 
   if (catalog[0].Naverage == 0) {
@@ -236,9 +238,9 @@
 
   /* make sure header is consistent with data */
-  gfits_modify (&catalog[0].header, "NSTARS",   "%lld", 1, catalog[0].Naverage);
-  gfits_modify (&catalog[0].header, "NMEAS",    "%lld", 1, catalog[0].Nmeasure);
-  gfits_modify (&catalog[0].header, "NMISS",    "%lld", 1, catalog[0].Nmissing);
-  gfits_modify (&catalog[0].header, "NSECFILT", "%lld", 1, Nsecfilt);
-  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
+  gfits_modify (&catalog[0].header, "NSTARS",   "%lld", 1, (long long) catalog[0].Naverage);
+  gfits_modify (&catalog[0].header, "NMEAS",    "%lld", 1, (long long) catalog[0].Nmeasure);
+  gfits_modify (&catalog[0].header, "NMISS",    "%lld", 1, (long long) catalog[0].Nmissing);
+  gfits_modify (&catalog[0].header, "NSECFILT", "%d",   1,                        Nsecfilt);
+  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
   gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog_raw.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog_raw.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog_raw.c	(revision 27368)
@@ -21,8 +21,8 @@
   /* get the components from the header */
   catalog[0].Naverage = catalog[0].Nmeasure = catalog[0].Nmissing = catalog[0].Nsecfilt = 0;
-  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%lld", 1, &catalog[0].Naverage)) return (FALSE);
-  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%lld", 1, &catalog[0].Nmeasure)) return (FALSE);
-  if (!gfits_scan (&catalog[0].header, "NMISS",    "%lld", 1, &catalog[0].Nmissing)) return (FALSE);
-  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%lld", 1, &catalog[0].Nsecfilt)) catalog[0].Nsecfilt = 0;
+  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%lld", 1, (long long *) &catalog[0].Naverage)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%lld", 1, (long long *) &catalog[0].Nmeasure)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMISS",    "%lld", 1, (long long *) &catalog[0].Nmissing)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d",   1,               &catalog[0].Nsecfilt)) catalog[0].Nsecfilt = 0;
 
   /* the OBJID is a counter that uniquely defines an average entry and never changes.  if
@@ -45,5 +45,5 @@
   }
   /* special cases: old versions of the DB tables which were poorly identified */
-  if (gfits_scan (&catalog[0].header, "NEWMEAS",  "%t", 1, &NewMeasure)) {
+  if (gfits_scan_alt (&catalog[0].header, "NEWMEAS",  "%t", 1, &NewMeasure)) {
     catalog[0].catformat = DVO_FORMAT_ELIXIR; // special case for ELIXIR
     goto got_format;
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog_split.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_catalog_split.c	(revision 27368)
@@ -6,5 +6,5 @@
 // * ok
 
-int dvo_catalog_secfilt_to_primary (Catalog *catalog, SecFilt **myPrimary, SecFilt **mySecfilt, off_t *myNsecfilt) {
+int dvo_catalog_secfilt_to_primary (Catalog *catalog, SecFilt **myPrimary, SecFilt **mySecfilt, int *myNsecfilt) {
 
   off_t i, j, Nallfilt, Nsecfilt, Ntotal;
@@ -161,6 +161,6 @@
   off_t Nbytes;
   off_t Naverage, Nmeasure, Nmissing;
-  off_t Nitems, Nsecfilt;
-  int status;
+  off_t Nitems;
+  int status, Nsecfilt;
   Header header;
   FTable ftable;
@@ -174,8 +174,8 @@
 
   /* get the components from the header - these duplicate information in the split files (NAXIS2) */
-  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%lld", 1, &Naverage)) return (FALSE);
-  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%lld", 1, &Nmeasure)) return (FALSE);
-  if (!gfits_scan (&catalog[0].header, "NMISS",    "%lld", 1, &Nmissing)) return (FALSE);
-  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%lld", 1, &Nsecfilt)) Nsecfilt = 0;
+  if (!gfits_scan (&catalog[0].header, "NSTARS",   "%lld", 1, (long long *) &Naverage)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMEAS",    "%lld", 1, (long long *) &Nmeasure)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NMISS",    "%lld", 1, (long long *) &Nmissing)) return (FALSE);
+  if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d",   1,               &Nsecfilt)) Nsecfilt = 0;
 
   /* the OBJID is a counter that uniquely defines an average entry and never changes.  if
@@ -490,5 +490,5 @@
   FTable ftable;
   SecFilt *primary, *secfilt;
-  off_t Nsecfilt;
+  int Nsecfilt;
   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new;
   off_t first, start, Nrows;
@@ -524,9 +524,9 @@
 
   /* make sure header is consistent with data */
-  gfits_modify (&catalog[0].header, "NSTARS",   "%lld", 1, Naves_disk_new);
-  gfits_modify (&catalog[0].header, "NMEAS",    "%lld", 1, Nmeas_disk_new);
-  gfits_modify (&catalog[0].header, "NMISS",    "%lld", 1, Nmiss_disk_new);
-  gfits_modify (&catalog[0].header, "NSECFILT", "%lld", 1, Nsecfilt);
-  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
+  gfits_modify (&catalog[0].header, "NSTARS",   "%lld", 1, (long long) Naves_disk_new);
+  gfits_modify (&catalog[0].header, "NMEAS",    "%lld", 1, (long long) Nmeas_disk_new);
+  gfits_modify (&catalog[0].header, "NMISS",    "%lld", 1, (long long) Nmiss_disk_new);
+  gfits_modify (&catalog[0].header, "NSECFILT", "%d",   1, Nsecfilt);
+  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
   gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
 
@@ -671,5 +671,5 @@
   FTable ftable;
   SecFilt *primary, *secfilt;
-  off_t Nsecfilt;
+  int Nsecfilt;
   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new;
   off_t first, start, Nrows;
@@ -723,9 +723,9 @@
 
   /* make sure header is consistent with data */
-  gfits_modify (&catalog[0].header, "NSTARS",   "%lld", 1, Naves_disk_new);
-  gfits_modify (&catalog[0].header, "NMEAS",    "%lld", 1, Nmeas_disk_new);
-  gfits_modify (&catalog[0].header, "NMISS",    "%lld", 1, Nmiss_disk_new);
-  gfits_modify (&catalog[0].header, "NSECFILT", "%lld", 1, Nsecfilt);
-  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
+  gfits_modify (&catalog[0].header, "NSTARS",   "%lld", 1, (long long) Naves_disk_new);
+  gfits_modify (&catalog[0].header, "NMEAS",    "%lld", 1, (long long) Nmeas_disk_new);
+  gfits_modify (&catalog[0].header, "NMISS",    "%lld", 1, (long long) Nmiss_disk_new);
+  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, Nsecfilt);
+  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
   gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
 
@@ -869,5 +869,5 @@
   FTable ftable;
   SecFilt *primary, *secfilt;
-  off_t Nsecfilt;
+  int Nsecfilt;
   off_t Naves_disk_new, Nmeas_disk_new, Nmiss_disk_new, Nsecf_disk_new;
   off_t first, start, Nrows;
@@ -902,9 +902,9 @@
 
   /* make sure header is consistent with data */
-  gfits_modify (&catalog[0].header, "NSTARS",   "%lld", 1, Naves_disk_new);
-  gfits_modify (&catalog[0].header, "NMEAS",    "%lld", 1, Nmeas_disk_new);
-  gfits_modify (&catalog[0].header, "NMISS",    "%lld", 1, Nmiss_disk_new);
-  gfits_modify (&catalog[0].header, "NSECFILT", "%lld", 1, Nsecfilt);
-  gfits_modify (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
+  gfits_modify (&catalog[0].header, "NSTARS",   "%lld", 1, (long long) Naves_disk_new);
+  gfits_modify (&catalog[0].header, "NMEAS",    "%lld", 1, (long long) Nmeas_disk_new);
+  gfits_modify (&catalog[0].header, "NMISS",    "%lld", 1, (long long) Nmiss_disk_new);
+  gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, Nsecfilt);
+  gfits_modify_alt (&catalog[0].header, "EXTEND",   "%t", 1, TRUE);
   gfits_modify (&catalog[0].header, "OBJID",    "%d", 1, catalog[0].objID);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_convert.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_convert.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_convert.c	(revision 27368)
@@ -261,5 +261,5 @@
     gfits_free_header (theader);
     gfits_table_mkheader_Image (theader);
-    gfits_modify (theader, "NAXIS2", "%lld", 1, Nimage);
+    gfits_modify (theader, "NAXIS2", "%lld", 1, (long long) Nimage);
     theader[0].Naxis[1] = Nimage;
     ftable[0].datasize = gfits_data_size (theader);
@@ -282,5 +282,5 @@
     gfits_free_header (theader); \
     gfits_table_mkheader_Image (theader); \
-    gfits_modify (theader, "NAXIS2", "%lld", 1, Nimage); \
+    gfits_modify (theader, "NAXIS2", "%lld", 1, (long long) Nimage); \
     theader[0].Naxis[1] = Nimage; \
     ftable[0].datasize = gfits_data_size (theader); \
@@ -370,8 +370,8 @@
       } \
       /* convert header from old format to new format */ \
-      gfits_scan (theader, "NAXIS2", "%lld", 1, &Nimage); \
+      gfits_scan (theader, "NAXIS2", "%lld", 1, (long long *) &Nimage); \
       gfits_free_header (theader); \
       gfits_table_mkheader_Image_##TYPE (theader); \
-      gfits_modify (theader, "NAXIS2", "%lld", 1, Nimage); \
+      gfits_modify (theader, "NAXIS2", "%lld", 1, (long long) Nimage); \
       theader[0].Naxis[1] = Nimage; \
       vtable[0].datasize = gfits_data_size (theader); \
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_image.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_image.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_image.c	(revision 27368)
@@ -120,7 +120,7 @@
   /* adjust header */
   Nimages = 0;
-  gfits_scan (&db[0].header, "NIMAGES", "%lld", 1, &Nimages);
+  gfits_scan (&db[0].header, "NIMAGES", "%lld", 1, (long long *) &Nimages);
   Nimages += Nnew;
-  gfits_modify (&db[0].header, "NIMAGES", "%lld", 1, Nimages);
+  gfits_modify (&db[0].header, "NIMAGES", "%lld", 1, (long long) Nimages);
 
   gfits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
@@ -195,5 +195,5 @@
   gfits_table_set_Image (&db[0].ftable, NULL, 0);
 
-  gfits_modify (&db[0].header, "NIMAGES", "%lld", 1, 0);
+  gfits_modify (&db[0].header, "NIMAGES", "%lld", 1, 0LL);
   gfits_modify (&db[0].header, "ZERO_PT", "%lf", 1, ZeroPoint);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_image_raw.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_image_raw.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libdvo/src/dvo_image_raw.c	(revision 27368)
@@ -39,5 +39,5 @@
   /* find number of images */
   Nimage = 0;
-  gfits_scan (&db[0].header, "NIMAGES", "%lld", 1, &Nimage);
+  gfits_scan (&db[0].header, "NIMAGES", "%lld", 1, (long long *) &Nimage);
   if (stat (db[0].filename, &filestatus) == -1) {
     if (VERBOSE) fprintf (stderr, "ERROR: failed to get status of image catalog\n");
@@ -94,5 +94,5 @@
   } 
 
-  gfits_modify (&db[0].theader, "NAXIS2", "%lld", 1, Nimage);
+  gfits_modify (&db[0].theader, "NAXIS2", "%lld", 1, (long long) Nimage);
   db[0].theader.Naxis[1] = Nimage;
   db[0].ftable.datasize = gfits_data_size (&db[0].theader);
@@ -123,6 +123,6 @@
   Nrow = db[0].vtable.Nrow;
   row = db[0].vtable.row;
-  gfits_scan (db[0].vtable.header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (db[0].vtable.header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (db[0].vtable.header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (db[0].vtable.header, "NAXIS2", "%lld", 1, (long long *) &Ny);
 
   /* file pointer is at beginning of desired table data */
@@ -156,6 +156,6 @@
   }
 
-  gfits_scan (db[0].ftable.header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (db[0].ftable.header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (db[0].ftable.header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (db[0].ftable.header, "NAXIS2", "%lld", 1, (long long *) &Ny);
   size = Nx * Ny;
   Nbytes = fwrite (db[0].ftable.buffer, sizeof(char), size, db[0].f);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_create_H.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_create_H.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_create_H.c	(revision 27368)
@@ -17,5 +17,5 @@
   strncpy (header[0].buffer, "END", 3);
 
-  gfits_modify (header, "SIMPLE", "%t", 1, header[0].simple);
+  gfits_modify_alt (header, "SIMPLE", "%t", 1, header[0].simple);
   gfits_modify (header, "BITPIX", "%d", 1, header[0].bitpix);
   gfits_modify (header, "NAXIS",  "%d", 1, header[0].Naxes);
@@ -23,5 +23,5 @@
   for (i = 0; i < header[0].Naxes; i++) {
     snprintf (axis, 10, "NAXIS%d", i + 1);
-    gfits_modify (header,  axis, "%lld", 1, header[0].Naxis[i]);
+    gfits_modify (header,  axis, "%lld", 1, (long long) header[0].Naxis[i]);
   }
 
@@ -30,5 +30,5 @@
   gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale);
   gfits_modify (header, "BZERO",  "%lf", 1, header[0].bzero);
-  gfits_modify (header, "EXTEND", "%t",  1, header[0].extend);
+  gfits_modify_alt (header, "EXTEND", "%t",  1, header[0].extend);
   return (TRUE);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_modify.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_modify.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_modify.c	(revision 27368)
@@ -2,4 +2,5 @@
 # include <gfitsio.h>
 
+// this is only valid for the regular and non-boolean fields
 int gfits_modify (Header *header, char *field, char *mode, int N,...) {
   
@@ -8,5 +9,5 @@
 
   char comment[82], string[82], data[82];
-  char *p, *qs, *qe;
+  char *p, *qe;
   va_list argp;
   
@@ -66,4 +67,64 @@
   if (!strcmp (mode, "%lg"))  snprintf (string, 81, "%-8s= %20.10G / %-s ", field, va_arg (argp, double),   	      comment); 
 
+  /* string value.  Quotes must be at least 18 chars apart */
+  if (!strcmp (mode, "%s")) {
+    strncpy (data, va_arg (argp, char *), 68);
+    snprintf (string, 81, "%-8s= '%-18s' / %-s ", field, data, comment);
+  }
+
+  strncpy (p, string, 80);
+  va_end (argp);
+  return (TRUE);
+
+}
+
+// alternate version for the special types (boolean, comments, COMMENT)
+int gfits_modify_alt (Header *header, char *field, char *mode, int N,...) {
+  
+  /* this function expects one more argument, the value to be written */
+  /* this function is extremely similar to gfits_print, except it allows for changing an existing field. */
+
+  char comment[82], string[82], data[82];
+  char *p, *qs, *qe;
+  va_list argp;
+  
+  va_start (argp, N);
+  bzero (data, 82);
+  bzero (string, 82);
+  bzero (comment, 82);
+
+  if (mode[0] != '%') {
+    fprintf (stderr, "gfits_print: weird mode:  %s\n", mode);
+    return (FALSE);
+  }
+
+  /* find location of desired entry */
+  p = gfits_header_field (header, field, N);
+  if (p == NULL)  {
+    /* new entry, find the END of the header */
+    p = gfits_header_field (header, "END", 1);
+    if (p == NULL) return (FALSE); 
+    
+    /* is there enough space for 1 more line? */
+    if (header[0].datasize - (p - (header[0].buffer)) < 2*FT_LINE_LENGTH) {
+      header[0].datasize += FT_RECORD_SIZE;
+      REALLOCATE (header[0].buffer, char, header[0].datasize);
+      p = gfits_header_field (header, "END", 1);
+      if (p == NULL) return (FALSE); 
+      memset (p + FT_LINE_LENGTH, ' ', FT_RECORD_SIZE);
+    }
+    
+    /* push END line back 1 */
+    memmove ((p + FT_LINE_LENGTH), p, FT_LINE_LENGTH);
+    memset (p, ' ', FT_LINE_LENGTH);
+  } else {
+    /* old entry, save the comment region (is this skipping a character for non-strings?) */
+    qe = gfits_keyword_end (p);
+    qe += 3;
+    qe = MIN (p + 80, qe);
+    strncpy (comment, qe, p + 80 - qe);
+  }
+  gfits_pad_ending (comment, ' ', 82);  /* comment must contain spaces to the end */
+
   /* write the boolean mode */
   if (!strcmp (mode, "%t")) {
@@ -72,10 +133,4 @@
     else
       snprintf (string, 81, "%-8s= %18s F / %-s ", field, " ", comment);
-  }
-
-  /* string value.  Quotes must be at least 18 chars apart */
-  if (!strcmp (mode, "%s")) {
-    strncpy (data, va_arg (argp, char *), 68);
-    snprintf (string, 81, "%-8s= '%-18s' / %-s ", field, data, comment);
   }
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_print.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_print.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_print.c	(revision 27368)
@@ -2,4 +2,5 @@
 # include <gfitsio.h>
 
+// this only prints the regular and non-boolean fields
 int gfits_print (Header *header, char *field, char *mode, int N,...) {
   
@@ -8,5 +9,5 @@
   static char blank[] = " ";
   char string[82], line[80];
-  char *p, a;
+  char *p;
   va_list argp;  
 
@@ -61,4 +62,57 @@
   if (!strcmp (mode, "%lg")) { snprintf (string, 81, "%-8s= %20.10G / %46s ", field, va_arg (argp, double),             blank); }
 
+  /* string value.  Quotes must be at least 18 chars apart.  Longer lines will this should be fixed to allow arbitrary string lengths, up to 69 chars */
+  if (!strcmp (mode, "%s")) {
+    strcpy (line, va_arg (argp, char *));
+    line[68] = 0;
+    snprintf (string, 81, "%-8s= '%-18s' / %46s ", field, line, blank);
+  }
+
+  strncpy (p, string, 80);
+  
+  va_end (argp);
+  return (TRUE);
+
+}
+
+// alternate version for the special types (boolean, comments, COMMENT)
+int gfits_print_alt (Header *header, char *field, char *mode, int N,...) {
+  
+  /* this function expects one more argument, the value to be written */
+
+  static char blank[] = " ";
+  char string[82], line[80];
+  char *p, a;
+  va_list argp;  
+
+  va_start (argp, N);
+  
+  if (mode[0] != '%') {
+    fprintf (stderr, "gfits_print: weird mode:  %s\n", mode);
+    return (FALSE);
+  }
+
+  /* this is supposed to create a new field, not modify an old one.  */
+  p = gfits_header_field (header, field, N);
+  if (p != NULL) return (FALSE);
+
+  /* find the END of the header */
+  p = gfits_header_field (header, "END", 1);
+  if (p == NULL) return (FALSE); 
+
+  /* is there enough space for 1 more line? */
+  if (header[0].datasize - (p - (header[0].buffer)) < 2*FT_LINE_LENGTH) {
+    header[0].datasize += FT_RECORD_SIZE;
+    REALLOCATE (header[0].buffer, char, header[0].datasize);
+    /* re-find the "END" marker, in case new memory block is used */
+    p = gfits_header_field (header, "END", 1);
+    if (p == NULL) return (FALSE); 
+    memset (p + FT_LINE_LENGTH, ' ', FT_RECORD_SIZE);
+  }
+
+  /* push END line back 1 */
+  memmove ((p + FT_LINE_LENGTH), p, FT_LINE_LENGTH);
+  memset (p, ' ', FT_LINE_LENGTH);
+
   /* write the boolean mode */
   if (!strcmp (mode, "%t")) {
@@ -68,11 +122,4 @@
     else
       snprintf (string, 81, "%-8s= %18s F / %46s ", field, blank, blank);
-  }
-
-  /* string value.  Quotes must be at least 18 chars apart.  Longer lines will this should be fixed to allow arbitrary string lengths, up to 69 chars */
-  if (!strcmp (mode, "%s")) {
-    strcpy (line, va_arg (argp, char *));
-    line[68] = 0;
-    snprintf (string, 81, "%-8s= '%-18s' / %46s ", field, line, blank);
   }
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_read_H.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_read_H.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_read_H.c	(revision 27368)
@@ -60,23 +60,23 @@
     header[0].Naxis[i] = 0;
 
-  gfits_scan (header,  "SIMPLE", "%t",   1, &header[0].simple);
+  gfits_scan_alt (header,  "SIMPLE", "%t",   1, &header[0].simple);
   gfits_scan (header,  "BITPIX", "%d",   1, &header[0].bitpix);
   gfits_scan (header,  "NAXIS",  "%d",   1, &header[0].Naxes);
 				                           
-  gfits_scan (header,  "EXTEND", "%t",   1, &header[0].extend);
-  gfits_scan (header,  "UNSIGN", "%t",   1, &header[0].unsign);
+  gfits_scan_alt (header,  "EXTEND", "%t",   1, &header[0].extend);
+  gfits_scan_alt (header,  "UNSIGN", "%t",   1, &header[0].unsign);
   gfits_scan (header,  "BSCALE", "%lf",  1, &header[0].bscale);
   gfits_scan (header,  "BZERO",  "%lf",  1, &header[0].bzero);
 				       
-  gfits_scan (header,  "NAXIS1", "%lld", 1, &header[0].Naxis[0]);
-  gfits_scan (header,  "NAXIS2", "%lld", 1, &header[0].Naxis[1]);
-  gfits_scan (header,  "NAXIS3", "%lld", 1, &header[0].Naxis[2]);
-  gfits_scan (header,  "NAXIS4", "%lld", 1, &header[0].Naxis[3]);
-  gfits_scan (header,  "NAXIS5", "%lld", 1, &header[0].Naxis[4]);
-  gfits_scan (header,  "NAXIS6", "%lld", 1, &header[0].Naxis[5]);
-  gfits_scan (header,  "NAXIS7", "%lld", 1, &header[0].Naxis[6]);
-  gfits_scan (header,  "NAXIS8", "%lld", 1, &header[0].Naxis[7]);
-  gfits_scan (header,  "NAXIS9", "%lld", 1, &header[0].Naxis[8]);
-  gfits_scan (header, "NAXIS10", "%lld", 1, &header[0].Naxis[9]);
+  gfits_scan (header,  "NAXIS1", "%lld", 1, (long long *) &header[0].Naxis[0]);
+  gfits_scan (header,  "NAXIS2", "%lld", 1, (long long *) &header[0].Naxis[1]);
+  gfits_scan (header,  "NAXIS3", "%lld", 1, (long long *) &header[0].Naxis[2]);
+  gfits_scan (header,  "NAXIS4", "%lld", 1, (long long *) &header[0].Naxis[3]);
+  gfits_scan (header,  "NAXIS5", "%lld", 1, (long long *) &header[0].Naxis[4]);
+  gfits_scan (header,  "NAXIS6", "%lld", 1, (long long *) &header[0].Naxis[5]);
+  gfits_scan (header,  "NAXIS7", "%lld", 1, (long long *) &header[0].Naxis[6]);
+  gfits_scan (header,  "NAXIS8", "%lld", 1, (long long *) &header[0].Naxis[7]);
+  gfits_scan (header,  "NAXIS9", "%lld", 1, (long long *) &header[0].Naxis[8]);
+  gfits_scan (header, "NAXIS10", "%lld", 1, (long long *) &header[0].Naxis[9]);
 
   if (!gfits_scan (header, "PCOUNT",  "%d", 1, &header[0].pcount)) {
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_scan.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_scan.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/header/F_scan.c	(revision 27368)
@@ -2,4 +2,5 @@
 # include <gfitsio.h>
 
+// this only scans the regular and non-boolean fields
 int gfits_scan (Header *header, char *field, char *mode, int N,...) {
 
@@ -13,4 +14,17 @@
 }
   
+// alternate version for the special types (boolean, comments, COMMENT)
+int gfits_scan_alt (Header *header, char *field, char *mode, int N,...) {
+
+  int status;
+  va_list argp;
+  
+  va_start (argp, N);
+  status = gfits_vscan_alt (header, field, mode, N, argp);
+  va_end (argp);
+  return (status);
+}
+  
+// this only scans the regular and non-boolean fields
 int gfits_vscan (Header *header, char *field, char *mode, int N, va_list argp) {
 
@@ -27,24 +41,6 @@
   }
 
-  /* non-data entry (COMMENT, HISTORY) */
-  if (!strcmp (mode, "%S")) {
-    strncpy (va_arg (argp, char *), p + 8, FT_HISTORY_LENGTH);
-    return (TRUE);
-  }
-
   /* all others require '=' in column 8 */
   if (p[8] != '=') return (FALSE);
-
-  /* comment from data line */
-  if (!strcmp (mode, "%C")) {
-    q = gfits_keyword_end (p) + 3;
-    q = MIN (p + 80, q);
-    bzero (tmp, 81);
-    Nchar = MIN (80, p + 80 - q);
-    memcpy (tmp, q, Nchar);
-    stripwhite (tmp);
-    strcpy (va_arg (argp, char *), tmp);
-    return (TRUE);
-  }
 
   /* extract data into char array (exclude containing ' chars) */
@@ -61,17 +57,4 @@
   }
   
-  /* boolean data, requires int target */
-  if (!strcmp (mode, "%t")) {
-    s = gfits_keyword_start (p);
-    if (*s == 'T') {
-      *va_arg (argp, int *) = TRUE;
-      return (TRUE);
-    }
-    if (*s == 'F') {
-      *va_arg (argp, int *) = FALSE;   
-      return (TRUE);
-    }
-  }
-
   /* remaining options are numerical data */
   /* need to interpret 1.0d5 as 1.0e5 */
@@ -105,4 +88,55 @@
 }
 
+// alternate version for the special types (boolean, comments, COMMENT)
+int gfits_vscan_alt (Header *header, char *field, char *mode, int N, va_list argp) {
+
+  char *p, *q, *s, tmp[81];
+  int Nchar, status;
+
+  /* find the correct line with field */
+  p = gfits_header_field (header, field, N);
+  if (p == NULL) {
+    status = gfits_vscan_hierarch (header, field, mode, N, argp);
+    return (status);
+  }
+
+  /* non-data entry (COMMENT, HISTORY) */
+  if (!strcmp (mode, "%S")) {
+    strncpy (va_arg (argp, char *), p + 8, FT_HISTORY_LENGTH);
+    return (TRUE);
+  }
+
+  /* all others require '=' in column 8 */
+  if (p[8] != '=') return (FALSE);
+
+  /* comment from data line */
+  if (!strcmp (mode, "%C")) {
+    q = gfits_keyword_end (p) + 3;
+    q = MIN (p + 80, q);
+    bzero (tmp, 81);
+    Nchar = MIN (80, p + 80 - q);
+    memcpy (tmp, q, Nchar);
+    stripwhite (tmp);
+    strcpy (va_arg (argp, char *), tmp);
+    return (TRUE);
+  }
+
+  /* boolean data, requires int target */
+  if (!strcmp (mode, "%t")) {
+    s = gfits_keyword_start (p);
+    if (*s == 'T') {
+      *va_arg (argp, int *) = TRUE;
+      return (TRUE);
+    }
+    if (*s == 'F') {
+      *va_arg (argp, int *) = FALSE;   
+      return (TRUE);
+    }
+  }
+
+  /* no valid mode found */
+  return (FALSE);
+}
+
 # define HIERARCH_LENGTH 71
 int gfits_vscan_hierarch (Header *header, char *field, char *mode, int N, va_list argp) {
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/include/gfitsio.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/include/gfitsio.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/include/gfitsio.h	(revision 27368)
@@ -119,13 +119,17 @@
 int     gfits_init_header              PROTO((Header *header));
 int     gfits_load_header              PROTO((FILE *f, Header *header));
-int     gfits_modify                   PROTO((Header *header, char *field, char *mode, int N,...)); 
-int     gfits_print                    PROTO((Header *header, char *field, char *mode, int N,...)); 
+int     gfits_modify                   PROTO((Header *header, char *field, char *mode, int N,...)) OHANA_FORMAT(printf, 3, 5); 
+int     gfits_print                    PROTO((Header *header, char *field, char *mode, int N,...)) OHANA_FORMAT(printf, 3, 5); 
+int     gfits_modify_alt               PROTO((Header *header, char *field, char *mode, int N,...)); 
+int     gfits_print_alt                PROTO((Header *header, char *field, char *mode, int N,...)); 
 int     gfits_read_Xheader             PROTO((char *filename, Header *header, int N));
 int     gfits_read_header              PROTO((char *filename, Header *header));
 int     gfits_save_header              PROTO((FILE *f, Header *header));
-int     gfits_scan                     PROTO((Header *header, char *field, char *mode, int N,...));
+int     gfits_scan                     PROTO((Header *header, char *field, char *mode, int N,...)) OHANA_FORMAT(scanf, 3, 5);
+int     gfits_scan_alt                 PROTO((Header *header, char *field, char *mode, int N,...));
 int     gfits_set_unsign_mode          PROTO((int mode));
 int     gfits_stripwhite               PROTO((char *string));
 int     gfits_vscan                    PROTO((Header *header, char *field, char *mode, int N, va_list argp));
+int     gfits_vscan_alt                PROTO((Header *header, char *field, char *mode, int N, va_list argp));
 int     gfits_write_header             PROTO((char *filename, Header *header)); 
 off_t   gfits_data_size                PROTO((Header *header));
@@ -199,5 +203,5 @@
 int     gfits_set_bintable_column      PROTO((Header *header, FTable *table, char *label, void *data, off_t Nrow));
 int     gfits_set_table_column         PROTO((Header *header, FTable *table, char *label, void *data, off_t Nrow));
-int     gfits_table_column             PROTO((FTable *ftable, char *field, char *mode,...));
+int     gfits_table_column             PROTO((FTable *ftable, char *field, char *mode,...)) OHANA_FORMAT(printf, 3, 4);
 int     gfits_table_format             PROTO((char *format, char *type, int *Nval, int *Nbytes));
 int     gfits_table_scale_data         PROTO((FTable *ftable));
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/matrix/F_compress_M.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/matrix/F_compress_M.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/matrix/F_compress_M.c	(revision 27368)
@@ -24,4 +24,10 @@
     gfits_delete (header, ZNAME, 1); }
 
+# define MOD_KEYWORD_ALT(ZNAME,NAME,TYPE,IN,OUT) { \
+    if (gfits_scan_alt (header, ZNAME, TYPE, 1, IN)) { \
+      gfits_modify_alt (header, NAME, TYPE, 1, OUT); \
+    } \
+    gfits_delete (header, ZNAME, 1); }
+
 # define MOD_KEYWORD_REQUIRED(ZNAME,NAME,TYPE,IN,OUT) { \
   if (!gfits_scan (header, ZNAME, TYPE, 1, IN)) ESCAPE; \
@@ -52,5 +58,5 @@
 
   // is ZIMAGE present?
-  status = gfits_scan (ftable->header, "ZIMAGE", "%t", 1, &zimage);
+  status = gfits_scan_alt (ftable->header, "ZIMAGE", "%t", 1, &zimage);
   if (!status || !zimage) ESCAPE;
 
@@ -71,5 +77,5 @@
     snprintf (zaxis, 10, "ZNAXIS%d", i + 1);
     snprintf (naxis, 10, "NAXIS%d", i + 1);
-    MOD_KEYWORD_REQUIRED (zaxis,  naxis,  "%d", &header->Naxis[i],  header->Naxis[i]);
+    MOD_KEYWORD_REQUIRED (zaxis,  naxis,  "%lld", (long long *) &header->Naxis[i], (long long) header->Naxis[i]);
   }    
 
@@ -119,5 +125,5 @@
   int have_ztension;
 
-  have_zsimple  = gfits_scan (header, "ZSIMPLE", "%t", 1, &zsimple);
+  have_zsimple  = gfits_scan_alt (header, "ZSIMPLE", "%t", 1, &zsimple);
   have_ztension = gfits_scan (header, "ZTENSION", "%s", 1, exttype);
 
@@ -131,6 +137,6 @@
     gfits_extended_to_primary (header, header->simple, "Image data");
 
-    MOD_KEYWORD ("ZEXTEND",  "EXTEND",   "%t", &header->extend, header->extend);
-    MOD_KEYWORD ("ZBLOCKED", "BLOCKED",  "%t", &header->extend, header->extend);
+    MOD_KEYWORD_ALT ("ZEXTEND",  "EXTEND",   "%t", &header->extend, header->extend);
+    MOD_KEYWORD_ALT ("ZBLOCKED", "BLOCKED",  "%t", &header->extend, header->extend);
   }
 
@@ -141,6 +147,6 @@
     gfits_extended_to_primary (header, header->simple, "Image data");
 
-    MOD_KEYWORD ("ZEXTEND",  "EXTEND",   "%t", &header->extend, header->extend);
-    MOD_KEYWORD ("ZBLOCKED", "BLOCKED",  "%t", &header->extend, header->extend);
+    MOD_KEYWORD_ALT ("ZEXTEND",  "EXTEND",   "%t", &header->extend, header->extend);
+    MOD_KEYWORD_ALT ("ZBLOCKED", "BLOCKED",  "%t", &header->extend, header->extend);
   } 
 
@@ -176,5 +182,5 @@
 
   zscale = 1;
-  gfits_scan (header, "ZSCALE", "%lf", 1, &zscale);
+  gfits_scan (header, "ZSCALE", "%f", 1, &zscale);
 
   zblank = 32767;
@@ -185,5 +191,5 @@
 
   zzero = 0;
-  gfits_scan (header, "ZZERO", "%lf", 1, &zzero);
+  gfits_scan (header, "ZZERO", "%f", 1, &zzero);
 
   // find the COMPRESSED_DATA column (format should be 1PB, 1PI, 1PJ)
@@ -474,5 +480,5 @@
     has_extension = gfits_scan (header, "XTENSION", "%s", 1, extension);
     has_extname = gfits_scan (header, "EXTNAME", "%s", 1, extname);
-    has_zimage  = gfits_scan (header, "ZIMAGE", "%t", 1, &zimage);
+    has_zimage  = gfits_scan_alt (header, "ZIMAGE", "%t", 1, &zimage);
 
     if (has_extension && !strcmp (extension, "IMAGE")) return (FALSE);
@@ -490,6 +496,6 @@
     int ztension, zimage;
 
-    has_zimage   = gfits_scan (header, "ZIMAGE",   "%t", 1, &zimage);
-    has_ztension = gfits_scan (header, "ZTENSION", "%t", 1, &ztension);
+    has_zimage   = gfits_scan_alt (header, "ZIMAGE",   "%t", 1, &zimage);
+    has_ztension = gfits_scan_alt (header, "ZTENSION", "%t", 1, &ztension);
 
     if (has_zimage && zimage) return (TRUE);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/matrix/F_convert_format.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/matrix/F_convert_format.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/matrix/F_convert_format.c	(revision 27368)
@@ -114,5 +114,5 @@
   gfits_modify (header, "BSCALE", "%lf", 1, outScale);
   gfits_modify (header, "BZERO",  "%lf", 1, outZero);
-  gfits_modify (header, "UNSIGN", "%t", 1, outUnsign);
+  gfits_modify_alt (header, "UNSIGN", "%t", 1, outUnsign);
 
   Npixels          = header[0].Naxis[0]*header[0].Naxis[1];
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_create_TH.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_create_TH.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_create_TH.c	(revision 27368)
@@ -27,5 +27,5 @@
   for (i = 0; i < header[0].Naxes; i++) {
     sprintf (axis, "NAXIS%d", i + 1);
-    gfits_modify (header,  axis, "%lld", 1, header[0].Naxis[i]);
+    gfits_modify (header,  axis, "%lld", 1, (long long) header[0].Naxis[i]);
   }
   
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_define_column.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_define_column.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_define_column.c	(revision 27368)
@@ -13,5 +13,5 @@
   Nfields = 0;
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
-  gfits_scan (header, "NAXIS1",  "%lld", 1, &Naxis1);
+  gfits_scan (header, "NAXIS1",  "%lld", 1, (long long *) &Naxis1);
   Nfields ++;
   Naxis1 += Nbytes*Nval;
@@ -19,5 +19,5 @@
   sprintf (field, "TTYPE%d", Nfields);
   gfits_modify (header, field, "%s", 1, label);
-  gfits_modify (header, field, "%C", 1, comment);
+  gfits_modify_alt (header, field, "%C", 1, comment);
   sprintf (field, "TUNIT%d", Nfields);
   gfits_modify (header, field, "%s", 1, unit);
@@ -35,5 +35,5 @@
   /* update TFIELDS & NAXIS1 */
   gfits_modify (header, "TFIELDS", "%d", 1, Nfields);
-  gfits_modify (header, "NAXIS1",  "%lld", 1, Naxis1);
+  gfits_modify (header, "NAXIS1",  "%lld", 1, (long long) Naxis1);
   header[0].Naxis[0] = Naxis1;
 
@@ -53,5 +53,5 @@
   Nfields = 0;
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
-  gfits_scan (header, "NAXIS1",  "%lld", 1, &Naxis1);
+  gfits_scan (header, "NAXIS1",  "%lld", 1, (long long *) &Naxis1);
   Nstart = Naxis1 + 1;
   Nfields ++;
@@ -60,5 +60,5 @@
   sprintf (field, "TTYPE%d", Nfields);
   gfits_modify (header, field, "%s", 1, label);
-  gfits_modify (header, field, "%C", 1, comment);
+  gfits_modify_alt (header, field, "%C", 1, comment);
   sprintf (field, "TUNIT%d", Nfields);
   gfits_modify (header, field, "%s", 1, unit);
@@ -70,5 +70,5 @@
 
   gfits_modify (header, "TFIELDS", "%d", 1, Nfields);
-  gfits_modify (header, "NAXIS1",  "%lld", 1, Naxis1);
+  gfits_modify (header, "NAXIS1",  "%lld", 1, (long long) Naxis1);
   header[0].Naxis[0] = Naxis1;
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_get_column.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_get_column.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_get_column.c	(revision 27368)
@@ -51,6 +51,6 @@
   
   /* check existing table dimensions */
-  gfits_scan (header, "NAXIS1",  "%lld", 1, &Nx);
-  gfits_scan (header, "NAXIS2",  "%lld", 1, &Ny);
+  gfits_scan (header, "NAXIS1",  "%lld", 1, (long long *) &Nx);
+  gfits_scan (header, "NAXIS2",  "%lld", 1, (long long *) &Ny);
 
   /* scan columns to find insert point */
@@ -187,6 +187,6 @@
   
   /* check existing table dimensions */
-  gfits_scan (header, "NAXIS1",  "%lld", 1, &Nx);
-  gfits_scan (header, "NAXIS2",  "%lld", 1, &Ny);
+  gfits_scan (header, "NAXIS1",  "%lld", 1, (long long *) &Nx);
+  gfits_scan (header, "NAXIS2",  "%lld", 1, (long long *) &Ny);
 
   /* scan columns to find insert point */
@@ -336,6 +336,6 @@
   
   /* check existing table dimensions */
-  gfits_scan (header, "NAXIS1",  "%lld", 1, &Nx);
-  gfits_scan (header, "NAXIS2",  "%lld", 1, &Ny);
+  gfits_scan (header, "NAXIS1",  "%lld", 1, (long long *) &Nx);
+  gfits_scan (header, "NAXIS2",  "%lld", 1, (long long *) &Ny);
 
   /* scan columns to find insert point */
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_read_T.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_read_T.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_read_T.c	(revision 27368)
@@ -109,5 +109,5 @@
   /* modify structure and header to match actual read rows Ny */
   table[0].header[0].Naxis[1] = Nrows;
-  gfits_modify (table[0].header, "NAXIS2",  "%lld", 1, Nrows);
+  gfits_modify (table[0].header, "NAXIS2",  "%lld", 1, (long long) Nrows);
   table[0].datasize = gfits_data_size (table[0].header);
 
@@ -185,6 +185,6 @@
     /* file pointer is at beginning of desired table data */
     start = ftello (f);
-    gfits_scan (header, "NAXIS1", "%lld", 1, &Nx);
-    gfits_scan (header, "NAXIS2", "%lld", 1, &Ny);
+    gfits_scan (header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+    gfits_scan (header, "NAXIS2", "%lld", 1, (long long *) &Ny);
     for (i = 0; i < Nrow; i++) {
       if (row[i] > Ny) { return (FALSE); }
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_read_TH.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_read_TH.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_read_TH.c	(revision 27368)
@@ -70,14 +70,14 @@
   if (!status) return (FALSE);
 				                           
-  gfits_scan (Theader,  "NAXIS1", "%lld", 1, &Theader[0].Naxis[0]);
-  gfits_scan (Theader,  "NAXIS2", "%lld", 1, &Theader[0].Naxis[1]);
-  gfits_scan (Theader,  "NAXIS3", "%lld", 1, &Theader[0].Naxis[2]);
-  gfits_scan (Theader,  "NAXIS4", "%lld", 1, &Theader[0].Naxis[3]);
-  gfits_scan (Theader,  "NAXIS5", "%lld", 1, &Theader[0].Naxis[4]);
-  gfits_scan (Theader,  "NAXIS6", "%lld", 1, &Theader[0].Naxis[5]);
-  gfits_scan (Theader,  "NAXIS7", "%lld", 1, &Theader[0].Naxis[6]);
-  gfits_scan (Theader,  "NAXIS8", "%lld", 1, &Theader[0].Naxis[7]);
-  gfits_scan (Theader,  "NAXIS9", "%lld", 1, &Theader[0].Naxis[8]);
-  gfits_scan (Theader, "NAXIS10", "%lld", 1, &Theader[0].Naxis[9]);
+  gfits_scan (Theader,  "NAXIS1", "%lld", 1, (long long *) &Theader[0].Naxis[0]);
+  gfits_scan (Theader,  "NAXIS2", "%lld", 1, (long long *) &Theader[0].Naxis[1]);
+  gfits_scan (Theader,  "NAXIS3", "%lld", 1, (long long *) &Theader[0].Naxis[2]);
+  gfits_scan (Theader,  "NAXIS4", "%lld", 1, (long long *) &Theader[0].Naxis[3]);
+  gfits_scan (Theader,  "NAXIS5", "%lld", 1, (long long *) &Theader[0].Naxis[4]);
+  gfits_scan (Theader,  "NAXIS6", "%lld", 1, (long long *) &Theader[0].Naxis[5]);
+  gfits_scan (Theader,  "NAXIS7", "%lld", 1, (long long *) &Theader[0].Naxis[6]);
+  gfits_scan (Theader,  "NAXIS8", "%lld", 1, (long long *) &Theader[0].Naxis[7]);
+  gfits_scan (Theader,  "NAXIS9", "%lld", 1, (long long *) &Theader[0].Naxis[8]);
+  gfits_scan (Theader, "NAXIS10", "%lld", 1, (long long *) &Theader[0].Naxis[9]);
 
   return (TRUE);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_set_column.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_set_column.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_set_column.c	(revision 27368)
@@ -49,10 +49,10 @@
   
   /* check existing table dimensions */
-  gfits_scan (header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (header, "NAXIS2", "%lld", 1, (long long *) &Ny);
   if (Ny == 0) { 
     Ny = Nrow;
     header[0].Naxis[1] = Ny;
-    gfits_modify (header, "NAXIS2", "%lld", 1, Ny);
+    gfits_modify (header, "NAXIS2", "%lld", 1, (long long) Ny);
 
     nbytes = gfits_data_size (header);
@@ -181,10 +181,10 @@
   
   /* check existing table dimensions */
-  gfits_scan (header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (header, "NAXIS2", "%lld", 1, (long long *) &Ny);
   if (Ny == 0) { 
     Ny = Nrow;
     header[0].Naxis[1] = Ny;
-    gfits_modify (header, "NAXIS2", "%lld", 1, Ny);
+    gfits_modify (header, "NAXIS2", "%lld", 1, (long long) Ny);
 
     nbytes = gfits_data_size (header);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_table_format.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_table_format.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_table_format.c	(revision 27368)
@@ -130,6 +130,6 @@
   off_t i, Nx, Ny;
 
-  gfits_scan (ftable[0].header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (ftable[0].header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (ftable[0].header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (ftable[0].header, "NAXIS2", "%lld", 1, (long long *) &Ny);
   
   if (start + Nkeep > Ny) return (FALSE);
@@ -158,6 +158,6 @@
   off_t i, N, Nx, Ny;
 
-  gfits_scan (ftable[0].header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (ftable[0].header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (ftable[0].header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (ftable[0].header, "NAXIS2", "%lld", 1, (long long *) &Ny);
 
   /* make empty vtable from table */
@@ -191,5 +191,5 @@
   va_start (argp, table);
 
-  gfits_scan (table[0].header, "NAXIS1",  "%lld", 1, &Nx);
+  gfits_scan (table[0].header, "NAXIS1",  "%lld", 1, (long long *) &Nx);
   gfits_scan (table[0].header, "TFIELDS", "%d", 1, &Nfields);
 
@@ -236,6 +236,6 @@
   off = 0;
 
-  gfits_scan (ftable[0].header, "NAXIS1",  "%lld", 1, &Nx);
-  gfits_scan (ftable[0].header, "NAXIS2",  "%lld", 1, &Ny);
+  gfits_scan (ftable[0].header, "NAXIS1",  "%lld", 1, (long long *) &Nx);
+  gfits_scan (ftable[0].header, "NAXIS2",  "%lld", 1, (long long *) &Ny);
   gfits_scan (ftable[0].header, "TFIELDS", "%d", 1, &Nfields);
 
@@ -320,6 +320,6 @@
   off = 0;
 
-  gfits_scan (ftable[0].header, "NAXIS1",  "%lld", 1, &Nx);
-  gfits_scan (ftable[0].header, "NAXIS2",  "%lld", 1, &Ny);
+  gfits_scan (ftable[0].header, "NAXIS1",  "%lld", 1, (long long *) &Nx);
+  gfits_scan (ftable[0].header, "NAXIS2",  "%lld", 1, (long long *) &Ny);
   gfits_scan (ftable[0].header, "TFIELDS", "%d", 1, &Nfields);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_table_row.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_table_row.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_table_row.c	(revision 27368)
@@ -11,6 +11,6 @@
   header = table[0].header;
 
-  gfits_scan (header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (header, "NAXIS2", "%lld", 1, (long long *) &Ny);
   
   if (header[0].Naxis[1] != Ny) return (FALSE);
@@ -23,5 +23,5 @@
   Ny += Nrow;
   header[0].Naxis[1] = Ny;
-  gfits_modify (header, "NAXIS2",  "%lld", 1, Ny);
+  gfits_modify (header, "NAXIS2",  "%lld", 1, (long long) Ny);
 
   nbytes = gfits_data_size (header);
@@ -43,6 +43,6 @@
   header = table[0].header;
 
-  gfits_scan (header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (header, "NAXIS2", "%lld", 1, (long long *) &Ny);
   
   if (header[0].Naxis[1] != Ny) return (FALSE);
@@ -64,5 +64,5 @@
   Ny += Nrow;
   header[0].Naxis[1] = Ny;
-  gfits_modify (header, "NAXIS2", "%lld", 1, Ny);
+  gfits_modify (header, "NAXIS2", "%lld", 1, (long long) Ny);
 
   table[0].datasize = gfits_data_size (table[0].header);
@@ -81,6 +81,6 @@
   header = table[0].header;
 
-  gfits_scan (header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (header, "NAXIS2", "%lld", 1, (long long *) &Ny);
   
   if (header[0].Naxis[1] != Ny) return (FALSE);
@@ -97,5 +97,5 @@
   Ny -= Nrow;
   header[0].Naxis[1] = Ny;
-  gfits_modify (header, "NAXIS2", "%lld", 1, Ny);
+  gfits_modify (header, "NAXIS2", "%lld", 1, (long long) Ny);
 
   nbytes = gfits_data_size (header);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_table_varlength.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_table_varlength.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_table_varlength.c	(revision 27368)
@@ -64,5 +64,5 @@
 
   // heap_start must be long long so file may be very large
-  if (!gfits_scan (ftable->header, "THEAP", "%lld", 1, &def->heap_start)) {
+  if (!gfits_scan (ftable->header, "THEAP", "%lld", 1, (long long *) &def->heap_start)) {
     def->heap_start = ftable->header->Naxis[0]*ftable->header->Naxis[1];
   }
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_write_T.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_write_T.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libfits/table/F_write_T.c	(revision 27368)
@@ -40,6 +40,6 @@
   Nrow = table[0].Nrow;
   row = table[0].row;
-  gfits_scan (table[0].header, "NAXIS1", "%lld", 1, &Nx);
-  gfits_scan (table[0].header, "NAXIS2", "%lld", 1, &Ny);
+  gfits_scan (table[0].header, "NAXIS1", "%lld", 1, (long long *) &Nx);
+  gfits_scan (table[0].header, "NAXIS2", "%lld", 1, (long long *) &Ny);
 
   /* file pointer is at beginning of desired table data */
@@ -79,5 +79,5 @@
   
   /* modify vtable to represent full disk table */
-  gfits_modify (ftable[0].header, "NAXIS2", "%lld", 1, Ntotal);
+  gfits_modify (ftable[0].header, "NAXIS2", "%lld", 1, (long long) Ntotal);
   ftable[0].header[0].Naxis[1] = Ntotal;
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libkapa/include/kapa.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libkapa/include/kapa.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libkapa/include/kapa.h	(revision 27368)
@@ -109,9 +109,9 @@
 
 /* IOfuncs.c */
-int KiiSendMessage (int device, char *format, ...);
-int KiiScanMessage (int device, char *format, ...);
-int KiiSendCommand (int device, int length, char *format, ...);
+int KiiSendMessage (int device, char *format, ...) OHANA_FORMAT(printf, 2, 3);
+int KiiScanMessage (int device, char *format, ...) OHANA_FORMAT(scanf, 2, 3);
+int KiiSendCommand (int device, int length, char *format, ...) OHANA_FORMAT(printf, 3, 4);
+int KiiScanCommand (int device, int length, char *format, ...) OHANA_FORMAT(scanf, 3, 4);
 int KiiSendCommandV (int device, int length, char *format, va_list argp);
-int KiiScanCommand (int device, int length, char *format, ...);
 int KiiSendData (int device, char *data, int Nbytes);
 char *KiiRecvData (int device);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/libohana/include/ohana.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/libohana/include/ohana.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/libohana/include/ohana.h	(revision 27368)
@@ -68,4 +68,10 @@
 # endif
 
+#ifdef __GNUC__
+#define OHANA_FORMAT(style, fmt, varargs) __attribute__((format(style, fmt, varargs)))
+#else // __GNUC__
+#define OHANA_FORMAT(style, fmt, varargs)
+#endif // __GNUC__
+
 enum {
  LCK_UNLOCK,        /* file is unlocked */
@@ -177,5 +183,5 @@
 char   *SelectConfigFile       PROTO((int *argc, char **argv, char *progname));
 char   *LoadConfigFile         PROTO((char *filename));
-char   *ScanConfig             PROTO((char *config, char *field, char *mode, int N,...));
+char   *ScanConfig             PROTO((char *config, char *field, char *mode, int N,...)) OHANA_FORMAT(scanf, 3, 5);
 char   *expandline             PROTO((char *line, char *config));
 char   *fileextname            PROTO((char *file));
@@ -214,5 +220,5 @@
 int 	EmptyIOBuffer  	       PROTO((IOBuffer *buffer, int Nmax, int fd));
 void    FreeIOBuffer   	       PROTO((IOBuffer *buffer));
-int 	PrintIOBuffer  	       PROTO((IOBuffer *buffer, char *format, ...));
+int 	PrintIOBuffer  	       PROTO((IOBuffer *buffer, char *format, ...)) OHANA_FORMAT(printf, 2, 3);
 int 	vPrintIOBuffer 	       PROTO((IOBuffer *buffer, char *format, va_list argp));
 
@@ -220,7 +226,7 @@
 int 	ExpectMessage 	       PROTO((int device, double timeout, IOBuffer *message));
 int 	ExpectCommand 	       PROTO((int device, int length, double timeout, IOBuffer *buffer));
-int 	SendMessage   	       PROTO((int device, char *format, ...));
+int 	SendMessage   	       PROTO((int device, char *format, ...)) OHANA_FORMAT(printf, 2, 3);
 int 	SendMessageFixed       PROTO((int device, int length, char *messge));
-int 	SendCommand   	       PROTO((int device, int length, char *format, ...));
+int 	SendCommand   	       PROTO((int device, int length, char *format, ...)) OHANA_FORMAT(printf, 3, 4);
 int 	SendCommandV  	       PROTO((int device, int length, char *format, va_list argp));
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/lightcurve/src/alter_headers.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/lightcurve/src/alter_headers.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/lightcurve/src/alter_headers.c	(revision 27368)
@@ -46,8 +46,8 @@
     gfits_modify (&header, "NMcal",  "%d", 1,  images[i].Nstars);
 
-    gfits_modify (&header, "Mcal",   "%C", 1, "relphot: calibration magnitude");
-    gfits_modify (&header, "dMcal",  "%C", 1, "relphot: calibration error");
-    gfits_modify (&header, "clouds", "%C", 1, "relphot: cloud level");
-    gfits_modify (&header, "NMcal",  "%C", 1, "relphot: number of stars");
+    gfits_modify_alt (&header, "Mcal",   "%C", 1, "relphot: calibration magnitude");
+    gfits_modify_alt (&header, "dMcal",  "%C", 1, "relphot: calibration error");
+    gfits_modify_alt (&header, "clouds", "%C", 1, "relphot: cloud level");
+    gfits_modify_alt (&header, "NMcal",  "%C", 1, "relphot: number of stars");
 
     gfits_write_header (head, &header);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/misc/src/addastro.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/misc/src/addastro.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/misc/src/addastro.c	(revision 27368)
@@ -59,6 +59,6 @@
   gfits_modify (&header,  "CPRECISE", "%lf", 1, tmp);
 
-  gfits_modify (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
-  gfits_modify (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
+  gfits_modify_alt (&header, "CERROR", "%C", 1, "scatter in astrometry soln (arcsec)");
+  gfits_modify_alt (&header, "CPRECISE", "%C", 1, "precision of astrometry soln (arcsec)");
 
   /* write to file */
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/mosastro/src/LoadStars.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/mosastro/src/LoadStars.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/mosastro/src/LoadStars.c	(revision 27368)
@@ -50,5 +50,5 @@
 
     extend = FALSE;
-    gfits_scan (&chip[Nchip].header, "EXTEND",  "%t", 1, &extend);
+    gfits_scan_alt (&chip[Nchip].header, "EXTEND",  "%t", 1, &extend);
     if (extend) {
       status = rfits (&chip[Nchip]);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/mosastro/src/SaveResiduals.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/mosastro/src/SaveResiduals.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/mosastro/src/SaveResiduals.c	(revision 27368)
@@ -12,5 +12,5 @@
   header[0].Naxes = 0;
   gfits_modify (header, "NAXIS",   "%d", 1, 0);
-  gfits_modify (header, "EXTEND",  "%t", 1, TRUE);
+  gfits_modify_alt (header, "EXTEND",  "%t", 1, TRUE);
   gfits_modify (header, "NEXTEND", "%d", 1, 1);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/mosastro/src/wfits.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/mosastro/src/wfits.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/mosastro/src/wfits.c	(revision 27368)
@@ -10,5 +10,5 @@
   header[0].Naxes = 0;
   gfits_modify (header, "NAXIS",   "%d", 1, 0);
-  gfits_modify (header, "EXTEND",  "%t", 1, TRUE);
+  gfits_modify_alt (header, "EXTEND",  "%t", 1, TRUE);
   gfits_modify (header, "NEXTEND", "%d", 1, 1);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.astro/altaz.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.astro/altaz.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.astro/altaz.c	(revision 27368)
@@ -4,85 +4,164 @@
 # define dSIN(A)   ((double) sin ((double)RAD_DEG*A))
 
+int HD_to_AZ(double *alt, double *az, double *rot, double ha, double dec, double lat);
+int AZ_to_HD(double *ha, double *dec, double *rot, double alt, double az, double lat);
+
 double atan2 (double y, double x);
 
 int altaz (int argc, char **argv) {
   
+  int i;
   double alt, az, lat, rot;
   double ha, dec;
-  double sind, sinh, cosh;
   char *latstr;
+  Vector *hvec, *dvec, *avec, *zvec, *rvec;
+  opihi_flt *Hv, *Dv, *Av, *Zv, *Rv;
 
-  if (argc != 6) goto usage;
-
-  if (!strcmp (argv[1], "-h")) goto radec;
-  if (!strcmp (argv[1], "-c")) goto altaz;
-
- radec:
-  /* ha/dec -> alt/az */
-  ha  = atof (argv[2]);
-  dec = atof (argv[3]);
+  if (argc != 7) goto usage;
+  if (strcasecmp (argv[4], "to")) goto usage;
 
   latstr = get_variable ("LATITUDE");
   if (latstr == (char *) NULL) {
     gprint (GP_ERR, "please define $LATITUDE\n");
-    return (FALSE);
+    return FALSE;
   }
   lat = atof (latstr);
+  gprint (GP_ERR, "using latitude of %f\n", lat);
   free (latstr);
- 
+
+  if (!strcmp (argv[1], "-az")) goto radec;
+  if (!strcmp (argv[1], "-hd")) goto altaz;
+
+ radec:
+  if (ISNUM(argv[2][0]) && ISNUM(argv[3][0])) {
+    /* ha/dec -> alt/az */
+    ha  = atof (argv[2]);
+    dec = atof (argv[3]);
+  
+    HD_to_AZ (&alt, &az, &rot, ha, dec, lat);
+
+    set_variable (argv[5], alt);
+    set_variable (argv[6], az);
+    set_variable ("ROT", rot);
+    return TRUE;
+  } 
+
+  /* find vectors */
+  if ((hvec = SelectVector (argv[2], OLDVECTOR, TRUE)) == NULL) return FALSE;
+  if ((dvec = SelectVector (argv[3], OLDVECTOR, TRUE)) == NULL) return FALSE;
+  if ((avec = SelectVector (argv[5], ANYVECTOR, TRUE)) == NULL) return FALSE;
+  if ((zvec = SelectVector (argv[6], ANYVECTOR, TRUE)) == NULL) return FALSE;
+  if ((rvec = SelectVector ("ROT",   ANYVECTOR, TRUE)) == NULL) return FALSE;
+
+  if (hvec[0].Nelements != dvec[0].Nelements) {
+    gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[2], argv[3]);
+    return FALSE;
+  }
+  
+  // cast xvec or yvec to FLT if it is type INT
+  CastVector (hvec, OPIHI_FLT);
+  CastVector (dvec, OPIHI_FLT);
+  ResetVector (avec, OPIHI_FLT, hvec[0].Nelements);
+  ResetVector (zvec, OPIHI_FLT, hvec[0].Nelements);
+  ResetVector (rvec, OPIHI_FLT, hvec[0].Nelements);
+
+  Hv = hvec[0].elements.Flt;
+  Dv = dvec[0].elements.Flt;
+  Av = avec[0].elements.Flt;
+  Zv = zvec[0].elements.Flt;
+  Rv = zvec[0].elements.Flt;
+
+  for (i = 0; i < hvec[0].Nelements; i++, Hv++, Dv++, Av++, Zv++, Rv++) {
+    HD_to_AZ (Av, Zv, Rv, *Hv, *Dv, lat);
+  }
+  return TRUE;
+  
+ altaz:
+  if (ISNUM(argv[2][0]) && ISNUM(argv[3][0])) {
+    /* alt/az -> ha/dec */
+    alt = atof (argv[2]);
+    az  = atof (argv[3]);
+
+    AZ_to_HD (&ha, &dec, &rot, alt, az, lat);
+
+    set_variable (argv[5], ha);
+    set_variable (argv[6], dec);
+    set_variable ("ROT", rot);
+    return TRUE;
+  }
+  
+  /* find vectors */
+  if ((avec = SelectVector (argv[2], OLDVECTOR, TRUE)) == NULL) return FALSE;
+  if ((zvec = SelectVector (argv[3], OLDVECTOR, TRUE)) == NULL) return FALSE;
+  if ((hvec = SelectVector (argv[5], ANYVECTOR, TRUE)) == NULL) return FALSE;
+  if ((dvec = SelectVector (argv[6], ANYVECTOR, TRUE)) == NULL) return FALSE;
+  if ((rvec = SelectVector ("ROT",   ANYVECTOR, TRUE)) == NULL) return FALSE;
+
+  if (avec[0].Nelements != zvec[0].Nelements) {
+    gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[2], argv[3]);
+    return FALSE;
+  }
+  
+  // cast xvec or yvec to FLT if it is type INT
+  CastVector (avec, OPIHI_FLT);
+  CastVector (zvec, OPIHI_FLT);
+  ResetVector (hvec, OPIHI_FLT, avec[0].Nelements);
+  ResetVector (dvec, OPIHI_FLT, avec[0].Nelements);
+  ResetVector (rvec, OPIHI_FLT, avec[0].Nelements);
+
+  Hv = hvec[0].elements.Flt;
+  Dv = dvec[0].elements.Flt;
+  Av = avec[0].elements.Flt;
+  Zv = zvec[0].elements.Flt;
+  Rv = zvec[0].elements.Flt;
+
+  for (i = 0; i < hvec[0].Nelements; i++, Hv++, Dv++, Av++, Zv++, Rv++) {
+    AZ_to_HD (Hv, Dv, Rv, *Av, *Zv, lat);
+  }
+  return TRUE;
+  
+ usage:
+  gprint (GP_ERR, "USAGE: altaz -az (ha) (dec) to (alt) (az)\n");
+  gprint (GP_ERR, "USAGE: altaz -hd (alt) (az) to (ha) (dec)\n");
+  gprint (GP_ERR, "       -hd alt/az to ha/dec, -az ha/dec to alt/az\n");
+  gprint (GP_ERR, "       returned values in variables or vectors provided\n");
+  return FALSE;
+}
+
+int HD_to_AZ(double *alt, double *az, double *rot, double ha, double dec, double lat) {
+
+  double sind, sinh, cosh;
+
   sind = dSIN (dec) * dSIN (lat) + dCOS (dec) * dCOS (ha) * dCOS (lat);
-  alt  = DEG_RAD * asin (sind);
+  *alt  = DEG_RAD * asin (sind);
 
   sinh = - dCOS (dec) * dSIN (ha);
   cosh =   dSIN (dec) * dCOS (lat) - dCOS (dec) * dCOS (ha) * dSIN (lat);
 
-  az = DEG_RAD * atan2 (sinh, cosh);
-  set_variable (argv[4], alt);
-  set_variable (argv[5], az);
+  *az = DEG_RAD * atan2 (sinh, cosh);
+  
+  sinh = -dCOS(*az) * dSIN(*alt) * dSIN(ha) * dSIN(lat) + dSIN(*az) * dSIN(*alt) * dCOS(ha) - dSIN(ha) * dCOS(*alt) * dCOS(lat);
+  cosh = -dSIN(*az) * dSIN(ha) * dSIN(lat) - dCOS(*az) * dCOS(ha);
+  *rot = -DEG_RAD * atan2 (sinh, cosh);
+  
+  return TRUE;
+}
 
-  sinh = -dCOS(az) * dSIN(alt) * dSIN(ha) * dSIN(lat) + dSIN(az) * dSIN(alt) * dCOS(ha) - dSIN(ha) * dCOS(alt) * dCOS(lat);
-  cosh = -dSIN(az) * dSIN(ha) * dSIN(lat) - dCOS(az) * dCOS(ha);
-  rot = -DEG_RAD * atan2 (sinh, cosh);
-  set_variable ("ROT", rot);
+int AZ_to_HD(double *ha, double *dec, double *rot, double alt, double az, double lat) {
 
-  return (TRUE);
-  
- altaz:
-  /* alt/az -> ha/dec */
-  alt = atof (argv[4]);
-  az  = atof (argv[5]);
-
-  latstr = get_variable ("LATITUDE");
-  if (latstr == (char *) NULL) {
-    gprint (GP_ERR, "please define $LATITUDE\n");
-    return (FALSE);
-  }
-  lat = atof (latstr);
-  free (latstr);
+  double sind, sinh, cosh;
 
   sind = dSIN (alt) * dSIN (lat) + dCOS (alt) * dCOS (az) * dCOS (lat);
-  dec  = DEG_RAD * asin (sind);
+  *dec  = DEG_RAD * asin (sind);
 
   sinh = -dCOS (alt) * dSIN (az);
   cosh =  dSIN (alt) * dCOS (lat) - dCOS (alt) * dCOS (az) * dSIN (lat);
 
-  ha = DEG_RAD * atan2 (sinh, cosh);
-  set_variable (argv[2], ha);
-  set_variable (argv[3], dec);
+  *ha = DEG_RAD * atan2 (sinh, cosh);
 
-  sinh = -dCOS(az) * dSIN(alt) * dSIN(ha) * dSIN(lat) + dSIN(az) * dSIN(alt) * dCOS(ha) - dSIN(ha) * dCOS(alt) * dCOS(lat);
-  cosh = -dSIN(az) * dSIN(ha) * dSIN(lat) - dCOS(az) * dCOS(ha);
-  rot = -DEG_RAD * atan2 (sinh, cosh);
-  set_variable ("ROT", rot);
+  sinh = -dCOS(az) * dSIN(alt) * dSIN(*ha) * dSIN(lat) + dSIN(az) * dSIN(alt) * dCOS(*ha) - dSIN(*ha) * dCOS(alt) * dCOS(lat);
+  cosh = -dSIN(az) * dSIN(*ha) * dSIN(lat) - dCOS(az) * dCOS(*ha);
+  *rot = -DEG_RAD * atan2 (sinh, cosh);
 
-  return (TRUE);
-  
- usage:
-  gprint (GP_ERR, "USAGE: altaz -h (ha) (dec) (alt) (az)\n");
-  gprint (GP_ERR, "USAGE: altaz -c (ha) (dec) (alt) (az)\n");
-  gprint (GP_ERR, "       -h alt/az to ha/dec, -c ha/dec to alt/az\n");
-  gprint (GP_ERR, "       returned values in variables provided\n");
-  return (FALSE);
-
+  return TRUE;
 }
-
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.astro/precess.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.astro/precess.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.astro/precess.c	(revision 27368)
@@ -97,5 +97,5 @@
   opihi_flt *Dv = yvec[0].elements.Flt;
 
-  for (i = 0; i < xvec[0].Nelements; i++, Av, Dv) {
+  for (i = 0; i < xvec[0].Nelements; i++, Av++, Dv++) {
     A = *Av;
     D = *Dv;
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.basic/date.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.basic/date.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.basic/date.c	(revision 27368)
@@ -40,5 +40,5 @@
       set_int_variable (varName, now.tv_sec - REFTIME);
     } else {
-      gprint (GP_ERR, "%d\n", now.tv_sec - REFTIME);
+      gprint (GP_ERR, "%d\n", (int) now.tv_sec - REFTIME);
     }
   } else {
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/extract.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/extract.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/extract.c	(revision 27368)
@@ -70,6 +70,6 @@
     if ((out[0].header.Naxis[1] != Ny) || (out[0].header.Naxis[0] != Nx)) {
       gprint (GP_ERR, "matrix sizes mis-matched\n");
-      gprint (GP_ERR, "%d x %d  vs  %d x %d\n", Nx, Ny, 
-	       out[0].header.Naxis[0], out[0].header.Naxis[1]);
+      gprint (GP_ERR, "%d x %d  vs  %lld x %lld\n", Nx, Ny, 
+	      (long long) out[0].header.Naxis[0], (long long) out[0].header.Naxis[1]);
       return (FALSE);
     }
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/keyword.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/keyword.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/keyword.c	(revision 27368)
@@ -107,11 +107,11 @@
       }
       ivalue = !strcasecmp (line, "T");
-      gfits_modify (&buf[0].header, argv[2], "%t", 1, ivalue);
+      gfits_modify_alt (&buf[0].header, argv[2], "%t", 1, ivalue);
       return (TRUE);
     case KEYCOMMENT:
-      gfits_modify (&buf[0].header, argv[2], "%C", 1, line);
+      gfits_modify_alt (&buf[0].header, argv[2], "%C", 1, line);
       return (TRUE);
     case COMMENT:
-      gfits_modify (&buf[0].header, argv[2], "%S", 0, line);
+      gfits_modify_alt (&buf[0].header, argv[2], "%S", 0, line);
       return (TRUE);
     }
@@ -135,5 +135,5 @@
 
   if (ascomment) {
-    status = gfits_scan (&buf[0].header, argv[2], "%C", 1, line);
+    status = gfits_scan_alt (&buf[0].header, argv[2], "%C", 1, line);
     if (!status) goto failure;
     if (argc == 4) 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/list_header.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/list_header.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/list_header.c	(revision 27368)
@@ -49,5 +49,5 @@
     gfits_modify (&buf[0].header, "BSCALE", "%lf", 1, bscale);
     gfits_modify (&buf[0].header, "BZERO",  "%lf", 1, bzero);
-    gfits_modify (&buf[0].header, "UNSIGN", "%t",  1, unsign);
+    gfits_modify_alt (&buf[0].header, "UNSIGN", "%t",  1, unsign);
     
   } else {
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/matrix.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/matrix.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/matrix.c	(revision 27368)
@@ -23,7 +23,7 @@
 
     if (bufB[0].matrix.Naxis[0] != bufC[0].matrix.Naxis[1]) {
-      gprint (GP_ERR, "size mis-match in matrices: (%d x %d) * (%d x %d)\n", 
-	      bufB[0].matrix.Naxis[0], bufB[0].matrix.Naxis[1], 
-	      bufC[0].matrix.Naxis[0], bufC[0].matrix.Naxis[1]);
+      gprint (GP_ERR, "size mis-match in matrices: (%lld x %lld) * (%lld x %lld)\n", 
+	      (long long) bufB[0].matrix.Naxis[0], (long long) bufB[0].matrix.Naxis[1], 
+	      (long long) bufC[0].matrix.Naxis[0], (long long) bufC[0].matrix.Naxis[1]);
       return (FALSE);
     }
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rd.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rd.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rd.c	(revision 27368)
@@ -223,5 +223,5 @@
 
   gprint (GP_LOG, "read %lld bytes from %s into buffer %s\n", 
-	   buf[0].header.datasize + buf[0].matrix.datasize, argv[2], argv[1]);
+	  (long long) buf[0].header.datasize + buf[0].matrix.datasize, argv[2], argv[1]);
 
   blank = 0xffff;
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rdseg.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rdseg.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rdseg.c	(revision 27368)
@@ -62,5 +62,5 @@
   buf[0].bzero  = buf[0].header.bzero;     /* store the original values */
   buf[0].unsign = buf[0].header.unsign;
-  gprint (GP_LOG, "read %d bytes from %s into buffer %s\n", buf[0].header.datasize + buf[0].matrix.datasize, argv[2], argv[1]);
+  gprint (GP_LOG, "read %lld bytes from %s into buffer %s\n", (long long) buf[0].header.datasize + buf[0].matrix.datasize, argv[2], argv[1]);
 
   gfits_scan (&buf[0].header, "BLANK", "%d", 1, &blank);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rebin.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rebin.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rebin.c	(revision 27368)
@@ -63,5 +63,5 @@
     }      
   }
-  if (VERBOSE) gprint (GP_LOG, "rebin %s to %s (%d,%d to %d,%d)\n", argv[1], argv[2], in[0].header.Naxis[0], in[0].header.Naxis[1], nx, ny);
+  if (VERBOSE) gprint (GP_LOG, "rebin %s to %s (%lld,%lld to %d,%d)\n", argv[1], argv[2], (long long) in[0].header.Naxis[0], (long long) in[0].header.Naxis[1], nx, ny);
 
   Nx = in[0].header.Naxis[0];
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rotate.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rotate.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/rotate.c	(revision 27368)
@@ -43,5 +43,5 @@
     gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
     gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
-    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_print_alt (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
     gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
@@ -82,5 +82,5 @@
     gfits_modify (&buf[0].header, "NAXIS1", "%d", 1, NY);
     gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, NX);
-    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_print_alt (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
     gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
@@ -120,5 +120,5 @@
 
   if (!strcasecmp (argv[2], "UPSIDE") || (atof (argv[2]) == -180) || (atof (argv[2]) == 180)) {
-    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_print_alt (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
     gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
@@ -155,5 +155,5 @@
 
   if (!strcasecmp (argv[2], "FLIPY")) {
-    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_print_alt (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
     gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
@@ -190,5 +190,5 @@
 
   if (!strcasecmp (argv[2], "FLIPX")) {
-    gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+    gfits_print_alt (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
     gfits_create_matrix (&buf[0].header, &buf[0].matrix);
     out_buff = (float *)buf[0].matrix.buffer;
@@ -272,5 +272,5 @@
   gfits_modify (&buf[0].header, "NAXIS2", "%d", 1, Ly);
   gfits_create_matrix (&buf[0].header, &buf[0].matrix);
-  gfits_print  (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
+  gfits_print_alt (&buf[0].header, "HISTORY", "%S", 1, "WARNING: rotated image!");
   out_buff = (float *)buf[0].matrix.buffer;
   for (j = 0; j < Ly; j++) {
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/wd.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/wd.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/cmd.data/wd.c	(revision 27368)
@@ -88,5 +88,5 @@
     gfits_modify (&temp_header, "BSCALE", "%lf", 1, outScale);
     gfits_modify (&temp_header, "BZERO",  "%lf", 1, outZero);
-    gfits_modify (&temp_header, "UNSIGN", "%t", 1, outUnsign);
+    gfits_modify_alt (&temp_header, "UNSIGN", "%t", 1, outUnsign);
   }
 
@@ -110,5 +110,5 @@
     }
 
-    gfits_modify (&Xhead, "EXTEND", "%t", 1, TRUE);
+    gfits_modify_alt (&Xhead, "EXTEND", "%t", 1, TRUE);
 
     Nextend = 0;
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/avextract.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/avextract.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/avextract.c	(revision 27368)
@@ -103,5 +103,5 @@
     catalog.Nsecfilt = 0;
 
-    if (VERBOSE) gprint (GP_ERR, "trying %s (%d of %d)\n", catalog.filename, i, skylist[0].Nregions);
+    if (VERBOSE) gprint (GP_ERR, "trying %s (%lld of %lld)\n", catalog.filename, (long long) i, (long long) skylist[0].Nregions);
       
     // an error exit status here is a significant error
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/badimages.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/badimages.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/badimages.c	(revision 27368)
@@ -39,5 +39,5 @@
     ptr = &image[entry].coords.crpix1;
     for (i = 0; i < 22; i++) {
-      gprint (GP_LOG, "%2d: %g\n", i, ptr[i]);
+      gprint (GP_LOG, "%2lld: %g\n", (long long) i, ptr[i]);
     }
     value = image[entry].coords.pc1_1*image[entry].coords.pc2_2 + image[entry].coords.pc1_2*image[entry].coords.pc2_1;
@@ -58,5 +58,5 @@
       value = image[i].coords.pc1_1*image[i].coords.pc2_2 + image[i].coords.pc1_2*image[i].coords.pc2_1;
       if ((value > big) || (value < small)) {
-	gprint (GP_LOG, "%5d %s: %d %g\n", i, image[i].name, image[i].tzero, value);
+	gprint (GP_LOG, "%5lld %s: %d %g\n", (long long) i, image[i].name, image[i].tzero, value);
       }
     }
@@ -65,5 +65,5 @@
       ptr = &image[i].coords.crpix1;
       if ((ptr[entry] > big) || (ptr[entry] < small)) {
-	gprint (GP_LOG, "%5d %s: %d %g\n", i, image[i].name, image[i].tzero, ptr[entry]);
+	gprint (GP_LOG, "%5lld %s: %d %g\n", (long long) i, image[i].name, image[i].tzero, ptr[entry]);
       }
     }
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/cmatch.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/cmatch.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/cmatch.c	(revision 27368)
@@ -37,5 +37,5 @@
   }
   dvo_catalog_unlock (&catalog1);
-  gprint (GP_ERR, "read %d stars from phot catalog file %s\n", catalog1.Naverage, filename);
+  gprint (GP_ERR, "read %lld stars from phot catalog file %s\n", (long long) catalog1.Naverage, filename);
 
   /* this is for loading from a text file, presumably hstgsc or usno
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/cmpread.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/cmpread.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/cmpread.c	(revision 27368)
@@ -65,5 +65,5 @@
 
   /* find expected number of stars */
-  if (!gfits_scan (&header, "NSTARS", "%lld", 1, &Nstars)) {
+  if (!gfits_scan (&header, "NSTARS", "%lld", 1, (long long *) &Nstars)) {
     gprint (GP_ERR, "ERROR: can't get NSTARS from header\n");
     gfits_free_header (&header);
@@ -77,5 +77,5 @@
     /* allocate space for stars */
     gprint (GP_ERR, "reading from TEXT cmp file %s\n", argv[2]);
-    if (!gfits_scan (&header, "NSTARS", "%lld", 1, &Nstars)) {
+    if (!gfits_scan (&header, "NSTARS", "%lld", 1, (long long *) &Nstars)) {
       gprint (GP_ERR, "ERROR: failed to find NSTARS\n");
       exit (1);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/detrend.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/detrend.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/detrend.c	(revision 27368)
@@ -137,5 +137,5 @@
 
   /* load existing data from database */
-  gfits_scan (&header, "NIMAGES", "%lld", 1, &Nimage);
+  gfits_scan (&header, "NIMAGES", "%lld", 1, (long long *) &Nimage);
   ALLOCATE (pimage, RegImage, Nimage);
   status = fread (pimage, sizeof(RegImage), Nimage, f);
@@ -143,5 +143,5 @@
 
   if (status != Nimage) {
-    gprint (GP_ERR, "ERROR: header and data in dB don't match (%d vs %d)\n", Nimage, status);
+    gprint (GP_ERR, "ERROR: header and data in dB don't match (%lld vs %lld)\n", (long long) Nimage, (long long) status);
     gfits_free_header (&header);
     free (pimage);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/fitcolors.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/fitcolors.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/fitcolors.c	(revision 27368)
@@ -174,5 +174,5 @@
     // the selection criteria
   }
-  gprint (GP_ERR, "using %d possible regions\n", skylist[0].Nregions);
+  gprint (GP_ERR, "using %lld possible regions\n", (long long) skylist[0].Nregions);
 
   /* vectors to save data */
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/fitsed.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/fitsed.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/fitsed.c	(revision 27368)
@@ -185,5 +185,5 @@
   /* loop over regions, extract data for each region */
   // XXX add interrupt checks
-  gprint (GP_ERR, "using %d possible regions\n", skylist[0].Nregions);
+  gprint (GP_ERR, "using %lld possible regions\n", (long long) skylist[0].Nregions);
   for (k = 0; k < skylist[0].Nregions; k++) {
     /* lock, load, unlock catalog */
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/gstar.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/gstar.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/gstar.c	(revision 27368)
@@ -159,5 +159,5 @@
       k = N1[i];
       if (!QUIET) {
-	gprint (GP_LOG, "star: %d\n", k);
+	gprint (GP_LOG, "star: %lld\n", (long long) k);
 	gprint (GP_LOG, "%11.7f ", catalog.average[k].R);
 	gprint (GP_LOG, "%11.7f ", catalog.average[k].D);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/imlist.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/imlist.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/imlist.c	(revision 27368)
@@ -104,6 +104,6 @@
       XY_to_RD (&r, &d, 0.5*image[i].NX, 0.5*image[i].NY, &image[i].coords);
     }
-    gprint (GP_LOG, "%3d %s %8.4f %8.4f %f %5d %2d %4.2f %5.3f %5.3f\n", 
-	     i, image[i].name, r, d, t, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal, image[i].dMcal);
+    gprint (GP_LOG, "%3lld %s %8.4f %8.4f %f %5d %2d %4.2f %5.3f %5.3f\n", 
+	    (long long) i, image[i].name, r, d, t, image[i].nstar, image[i].photcode, image[i].secz, image[i].Mcal, image[i].dMcal);
   }
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/imrough.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/imrough.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/imrough.c	(revision 27368)
@@ -267,5 +267,5 @@
     
     /* load existing data from database */
-    gfits_scan (&header, "NIMAGES", "%d", 1, &Nimage);
+    gfits_scan (&header, "NIMAGES", "%lld", 1, (long long *) &Nimage);
     ALLOCATE (image, RegImage, Nimage);
     status = fread (image, sizeof(RegImage), Nimage, f);
@@ -273,5 +273,5 @@
     
     if (status != Nimage) {
-      gprint (GP_ERR, "ERROR: header and data in dB don't match (%d vs %d)\n", Nimage, status);
+      gprint (GP_ERR, "ERROR: header and data in dB don't match (%lld vs %d)\n", (long long) Nimage, status);
       gfits_free_header (&header);
       free (image);
@@ -304,5 +304,5 @@
   /* convert to internal format */
   image = (RegImage *) table.buffer;
-  gfits_scan (table.header, "NAXIS2", "%d", 1, &Nimage);
+  gfits_scan (table.header, "NAXIS2", "%lld", 1, (long long *) &Nimage);
   gfits_convert_RegImage (image, sizeof (RegImage), Nimage);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/imsearch.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/imsearch.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/imsearch.c	(revision 27368)
@@ -106,5 +106,5 @@
 
   /* load existing data from database */
-  gfits_scan (&header, "NIMAGES", "%lld", 1, &Nimage);
+  gfits_scan (&header, "NIMAGES", "%lld", 1, (long long *) &Nimage);
   ALLOCATE (pimage, RegImage, Nimage);
   status = fread (pimage, sizeof(RegImage), Nimage, f);
@@ -131,5 +131,5 @@
     obstime[strlen(obstime)-1] = 0;
 
-    gprint (GP_LOG, "%5d %6s %6s %2d %2d   ", i, get_type_name(pimage[i].type), get_mode_name(pimage[i].mode), pimage[i].ccd, pimage[i].type);
+    gprint (GP_LOG, "%5lld %6s %6s %2d %2d   ", (long long) i, get_type_name(pimage[i].type), get_mode_name(pimage[i].mode), pimage[i].ccd, pimage[i].type);
     gprint (GP_LOG, "%s %s  ", pimage[i].pathname, pimage[i].filename);
     gprint (GP_LOG, "%s %s %f %s\n", pimage[i].filter, pimage[i].instrument, pimage[i].exptime, obstime);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/mextract.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/mextract.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/mextract.c	(revision 27368)
@@ -120,5 +120,5 @@
     catalog.Nsecfilt = Nsecfilt;
 
-    if (VERBOSE) gprint (GP_ERR, "trying %s (%d of %d)\n", catalog.filename, i, skylist[0].Nregions);
+    if (VERBOSE) gprint (GP_ERR, "trying %s (%lld of %lld)\n", catalog.filename, (long long) i, (long long) skylist[0].Nregions);
       
     // an error exit status here is a significant error
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/mmextract.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/mmextract.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/mmextract.c	(revision 27368)
@@ -186,5 +186,5 @@
     catalog.Nsecfilt = Nsecfilt;
 
-    if (VERBOSE) gprint (GP_ERR, "trying %s (%d of %d)\n", catalog.filename, i, skylist[0].Nregions);
+    if (VERBOSE) gprint (GP_ERR, "trying %s (%lld of %lld)\n", catalog.filename, (long long) i, (long long) skylist[0].Nregions);
       
     // an error exit status here is a significant error
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/photometry.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/photometry.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/dvo/photometry.c	(revision 27368)
@@ -336,5 +336,5 @@
 int ListPhotSelections () {
 
-  gprint (GP_ERR, "TimeSelect: %d, %d - %d\n",      TimeSelect, tzero, tend);
+  gprint (GP_ERR, "TimeSelect: %d, %s - %s\n",      TimeSelect, ctime(&tzero), ctime(&tend));
   gprint (GP_ERR, "MagSelect: %d, %f - %f\n",       MagSelect, MagMax, MagMin);
   gprint (GP_ERR, "TypeSelect: %d, %d\n",           TypeSelect, TypeValue);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/include/display.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/include/display.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/include/display.h	(revision 27368)
@@ -36,6 +36,6 @@
 int SendLabel (char *string, int Xgraph, int mode);
 
-int SendGraphMessage (int device, char *format, ...);
-int SendGraphCommand (int device, int length, char *format, ...);
+int SendGraphMessage (int device, char *format, ...) OHANA_FORMAT(printf, 2, 3);
+int SendGraphCommand (int device, int length, char *format, ...) OHANA_FORMAT(printf, 3, 4);
 int SendGraphCommandV (int device, int length, char *format, va_list argp);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/include/shell.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/include/shell.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/include/shell.h	(revision 27368)
@@ -153,5 +153,5 @@
 
 char 	     *memstr        		PROTO((char *m1, char *m2, int n));
-int  	      write_fmt     		PROTO((int fd, char *format, ...));
+int  	      write_fmt     		PROTO((int fd, char *format, ...)) OHANA_FORMAT(printf, 2, 3);
 char 	     *opihi_version 		PROTO((void));
 char 	     *strip_version 		PROTO((char *input));
@@ -167,7 +167,7 @@
 FILE         *gprintGetFile   		PROTO((gpDest dest));
 char         *gprintGetName   		PROTO((gpDest dest));
-int           gprint          		PROTO((gpDest dest, char *format, ...));
+int           gprint          		PROTO((gpDest dest, char *format, ...)) OHANA_FORMAT(printf, 2, 3);
 int           gwrite          		PROTO((char *buffer, int size, int N, gpDest dest));
-int           gprint_syserror           PROTO((gpDest dest, int myError, char *format, ...));
+int           gprint_syserror           PROTO((gpDest dest, int myError, char *format, ...)) OHANA_FORMAT(printf, 3, 4);
 int           gprintv                   PROTO((gpDest dest, char *format, va_list argp));
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/lib.shell/BufferOps.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/lib.shell/BufferOps.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/lib.shell/BufferOps.c	(revision 27368)
@@ -83,5 +83,5 @@
   return (buffers[i]);
 
- error:
+error:
   if (verbose) gprint (GP_ERR, "invalid matrix %s\n", name);
   return (NULL);
@@ -238,9 +238,9 @@
     gprint (GP_LOG, "    N       name                      file     X     Y    bytes BP  U   bzero     bscale  \n");
     for (i = 0; i < Nbuffers; i++) {
-      gprint (GP_LOG, "%5d %10s %25s %5d %5d %10d %3d %1d %10.4e %10.4e\n",
-	       i, buffers[i][0].name, buffers[i][0].file, 
-	       buffers[i][0].header.Naxis[0], buffers[i][0].header.Naxis[1],
-	       buffers[i][0].header.datasize + buffers[i][0].matrix.datasize, buffers[i][0].bitpix, 
-	       buffers[i][0].unsign, buffers[i][0].bzero, buffers[i][0].bscale);
+      gprint (GP_LOG, "%5d %10s %25s %5lld %5lld %10lld %3d %1d %10.4e %10.4e\n",
+	      i, buffers[i][0].name, buffers[i][0].file, 
+	      (long long) buffers[i][0].header.Naxis[0], (long long) buffers[i][0].header.Naxis[1],
+ 	      (long long) buffers[i][0].header.datasize + buffers[i][0].matrix.datasize, buffers[i][0].bitpix, 
+	      buffers[i][0].unsign, buffers[i][0].bzero, buffers[i][0].bscale);
     }
     return (TRUE);
@@ -249,9 +249,9 @@
   gprint (GP_LOG, "    N       name                      file     X     Y    bytes\n");
   for (i = 0; i < Nbuffers; i++) {
-    gprint (GP_LOG, "%5d %10s %25s %5d %5d %10d\n",
-	     i, buffers[i][0].name, buffers[i][0].file, 
-	     buffers[i][0].header.Naxis[0], buffers[i][0].header.Naxis[1],
-	     buffers[i][0].header.datasize + buffers[i][0].matrix.datasize);
-  }
-  return (TRUE);
-}
+    gprint (GP_LOG, "%5d %10s %25s %5lld %5lld %10lld\n",
+	    i, buffers[i][0].name, buffers[i][0].file, 
+	    (long long) buffers[i][0].header.Naxis[0], (long long) buffers[i][0].header.Naxis[1],
+	    (long long) buffers[i][0].header.datasize + buffers[i][0].matrix.datasize);
+  }
+  return (TRUE);
+}
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/lib.shell/multicommand.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/lib.shell/multicommand.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/lib.shell/multicommand.c	(revision 27368)
@@ -32,5 +32,5 @@
   /* here we can perform the security handshaking */
   VarConfig ("PASSWORD", "%s", PASSWORD);
-  SendCommand (server, strlen(PASSWORD), PASSWORD);
+  SendCommand (server, strlen(PASSWORD), "%s", PASSWORD);
   
   return;
@@ -82,5 +82,5 @@
 	if (server) {
 	  // send the command to the server instead
-	  if (!SendMessage (server, outline)) {
+	  if (!SendMessage (server, "%s", outline)) {
 	    switch (errno) {
 	      case EPIPE:
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/pcontrol/PclientCommand.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/pcontrol/PclientCommand.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/pcontrol/PclientCommand.c	(revision 27368)
@@ -63,5 +63,5 @@
   }
   if (status ==  0) {
-    gprint (GP_ERR, "pclient read returns 0 for %s\n", command);
+    gprint (GP_ERR, "pclient read returns 0 for %s\n", response);
     return (PCLIENT_DOWN);
   }
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/pcontrol/StartHost.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/pcontrol/StartHost.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/pcontrol/StartHost.c	(revision 27368)
@@ -14,5 +14,5 @@
   if (VarConfig ("SHELL", "%s", shell)     == NULL) strcpy (shell, "pclient");
 
-  if (VerboseMode()) gprint (GP_ERR, "starting host within thread %d\n", pthread_self());
+  if (VerboseMode()) gprint (GP_ERR, "starting host within thread %lld\n", (long long) pthread_self());
 
   pid = rconnect (command, host[0].hostname, shell, stdio);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/pcontrol/StopHosts.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/pcontrol/StopHosts.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/opihi/pcontrol/StopHosts.c	(revision 27368)
@@ -121,5 +121,5 @@
   int i, result, waitstatus;
 
-  if (VerboseMode()) gprint (GP_ERR, "harvesting within thread %p\n", pthread_self());
+  if (VerboseMode()) gprint (GP_ERR, "harvesting within thread %lld\n", (long long) pthread_self());
   if (VerboseMode()) gprint (GP_ERR, "child process %d is down, wait for exit status\n", pid);
   
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/photdbc/include/photdbc.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/photdbc/include/photdbc.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/photdbc/include/photdbc.h	(revision 27368)
@@ -104,5 +104,5 @@
 void          check_directory (char *basefile);
 
-int Shutdown (char *format, ...);
+int Shutdown (char *format, ...) OHANA_FORMAT(printf, 1, 2);
 void set_db (FITS_DB *in);
 void lock_image_db (FITS_DB *db, char *filename);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/relastro/include/relastro.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/relastro/include/relastro.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/relastro/include/relastro.h	(revision 27368)
@@ -155,5 +155,5 @@
 Image        *find_images         PROTO((FITS_DB *db, GSCRegion *region, off_t Nregion, off_t *Nimage, off_t **LineNum));
 void set_db (FITS_DB *in);
-int Shutdown (char *format, ...);
+int Shutdown (char *format, ...) OHANA_FORMAT(printf, 1, 2);
 void TrapSignal (int sig);
 void SetProtect (int mode);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/relphot/include/relphot.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/relphot/include/relphot.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/relphot/include/relphot.h	(revision 27368)
@@ -129,5 +129,5 @@
 
 void set_db (FITS_DB *in);
-int Shutdown (char *format, ...);
+int Shutdown (char *format, ...) OHANA_FORMAT(printf, 1, 2) ;
 void TrapSignal (int sig);
 void SetProtect (int mode);
@@ -172,5 +172,5 @@
 void          plot_grid           PROTO((Catalog *catalog));
 void          plot_images         PROTO((void));
-void          plot_list           PROTO((Graphdata *graphdata, double *xlist, double *ylist, int N, char *label, char *format, ...));
+void          plot_list           PROTO((Graphdata *graphdata, double *xlist, double *ylist, int N, char *label, char *format, ...) OHANA_FORMAT(printf, 6, 7) );
 void          plot_mosaic_fields  PROTO((Catalog *catalog));
 void          plot_mosaics        PROTO((void));
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/relphot/src/GridOps.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/relphot/src/GridOps.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/relphot/src/GridOps.c	(revision 27368)
@@ -703,7 +703,7 @@
   gfits_create_header (&header);
   gfits_create_matrix (&header, &matrix);
-  gfits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
+  gfits_modify (&header, "NEXTEND", "%lld", 1, (long long) Nimage + 3);
   gfits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
-  gfits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
+  gfits_modify_alt (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
 
   // we need to add lines to the PHU to identify the camera and format; these are used by the ipp config system
@@ -782,6 +782,6 @@
     theader.Naxis[0] = RELPHOT_GRID_X;
     theader.Naxis[1] = RELPHOT_GRID_Y;
-    gfits_modify (&theader, "NAXIS1", "%lld", 1, RELPHOT_GRID_X);
-    gfits_modify (&theader, "NAXIS2", "%lld", 1, RELPHOT_GRID_Y);
+    gfits_modify (&theader, "NAXIS1", "%d", 1, RELPHOT_GRID_X);
+    gfits_modify (&theader, "NAXIS2", "%d", 1, RELPHOT_GRID_Y);
     gfits_create_matrix  (&theader, &matrix);
 
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/relphot/src/load_images.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/relphot/src/load_images.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/relphot/src/load_images.c	(revision 27368)
@@ -47,5 +47,5 @@
   vtable = &db[0].vtable;
 
-  gfits_scan (vtable[0].header, "NAXIS1", "%lld", 1, &Nx);
+  gfits_scan (vtable[0].header, "NAXIS1", "%lld", 1, (long long *) &Nx);
   for (i = 0; i < Nimage; i++) {
     memcpy (vtable[0].buffer[i], &image[i], Nx);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/tools/src/ftable.c
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/tools/src/ftable.c	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/tools/src/ftable.c	(revision 27368)
@@ -95,6 +95,6 @@
   table.datasize = Nbytes;
 
-  gfits_scan (table.header, "NAXIS1",  "%lld", 1, &Nx);
-  gfits_scan (table.header, "NAXIS2",  "%lld", 1, &Ny);
+  gfits_scan (table.header, "NAXIS1",  "%lld", 1, (long long *) &Nx);
+  gfits_scan (table.header, "NAXIS2",  "%lld", 1, (long long *) &Ny);
 
   /* print a column */
@@ -125,5 +125,5 @@
   char field[16], type[16], format[16], *line;
 
-  gfits_scan (header, "NAXIS1",  "%lld", 1, &Nx);
+  gfits_scan (header, "NAXIS1",  "%lld", 1, (long long *) &Nx);
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
 
@@ -209,5 +209,5 @@
     for (i = 0; i < Naxis; i++) {
       sprintf (axisname, "NAXIS%d", i+1);
-      status = gfits_scan (&header, axisname,  "%lld", 1, &Nelem);
+      status = gfits_scan (&header, axisname,  "%lld", 1, (long long *) &Nelem);
       if (!status) {
 	fprintf (stderr, "missing %s\n", axisname);
@@ -220,5 +220,5 @@
     if (Ncomp == 0) {
       extend = FALSE;
-      gfits_scan (&header, "EXTEND", "%t", 1, &extend);
+      gfits_scan_alt (&header, "EXTEND", "%t", 1, &extend);
       if (!extend) {
 	fprintf (stderr, "no extensions listed in file\n");
@@ -257,5 +257,5 @@
   /* check for existence of extensions */
   extend = FALSE;
-  gfits_scan (header, "EXTEND", "%t", 1, &extend);
+  gfits_scan_alt (header, "EXTEND", "%t", 1, &extend);
   if (!extend) {
     fprintf (stderr, "no extensions listed in file\n");
@@ -294,6 +294,6 @@
 
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
-  gfits_scan (header, "NAXIS1",  "%lld", 1, &Nx);
-  gfits_scan (header, "NAXIS2",  "%lld", 1, &Ny);
+  gfits_scan (header, "NAXIS1",  "%lld", 1, (long long *) &Nx);
+  gfits_scan (header, "NAXIS2",  "%lld", 1, (long long *) &Ny);
 
   if (Colname != (char *) NULL) {
@@ -388,5 +388,5 @@
     sprintf (field, "TTYPE%d", i);
     gfits_scan (header, field, "%s", 1, type);
-    gfits_scan (header, field, "%C", 1, comment);
+    gfits_scan_alt (header, field, "%C", 1, comment);
     sprintf (field, "TFORM%d", i);
     gfits_scan (header, field, "%s", 1, format);
Index: /branches/eam_branches/largefiles.20100314/Ohana/src/uniphot/include/uniphot.h
===================================================================
--- /branches/eam_branches/largefiles.20100314/Ohana/src/uniphot/include/uniphot.h	(revision 27367)
+++ /branches/eam_branches/largefiles.20100314/Ohana/src/uniphot/include/uniphot.h	(revision 27368)
@@ -98,5 +98,5 @@
 void	      create_image_db 	 PROTO((FITS_DB *db));
 void	      set_db 		 PROTO((FITS_DB *in));
-int 	      Shutdown 		 PROTO((char *format, ...));
+int 	      Shutdown 		 PROTO((char *format, ...) OHANA_FORMAT(printf, 1, 2) );
 void 	      TrapSignal 	 PROTO((int sig));
 void 	      SetProtect 	 PROTO((int mode));
