Index: trunk/psModules/src/camera/pmFPAfileIO.c
===================================================================
--- trunk/psModules/src/camera/pmFPAfileIO.c	(revision 11687)
+++ trunk/psModules/src/camera/pmFPAfileIO.c	(revision 11793)
@@ -251,9 +251,10 @@
 
     switch (file->type) {
-        // open the FITS types:
-    case PM_FPA_FILE_IMAGE:
-    case PM_FPA_FILE_MASK:
-    case PM_FPA_FILE_WEIGHT:
-    case PM_FPA_FILE_FRINGE:
+      // open the FITS types:
+      case PM_FPA_FILE_IMAGE:
+      case PM_FPA_FILE_MASK:
+      case PM_FPA_FILE_WEIGHT:
+      case PM_FPA_FILE_HEADER:
+      case PM_FPA_FILE_FRINGE:
         psTrace ("pmFPAfile", 5, "opening %s (type: %d)\n", file->filename, file->type);
         if (!openImage(file, view, mode, config)) {
@@ -263,5 +264,5 @@
         break;
         // open the FITS object files
-    case PM_FPA_FILE_CMF:
+      case PM_FPA_FILE_CMF:
         psTrace ("pmFPAfile", 5, "opening %s (type: %d)\n", file->filename, file->type);
         file->fits = psFitsOpen (file->filename, mode);
@@ -273,17 +274,17 @@
         break;
 
-        // defer opening TEXT types:
-    case PM_FPA_FILE_SX:
-    case PM_FPA_FILE_OBJ:
-    case PM_FPA_FILE_CMP:
-    case PM_FPA_FILE_RAW:
-    case PM_FPA_FILE_PSF:
-    case PM_FPA_FILE_JPEG:
-    case PM_FPA_FILE_KAPA:
-    case PM_FPA_FILE_MANAPLOT:
+      // defer opening TEXT types:
+      case PM_FPA_FILE_SX:
+      case PM_FPA_FILE_OBJ:
+      case PM_FPA_FILE_CMP:
+      case PM_FPA_FILE_RAW:
+      case PM_FPA_FILE_PSF:
+      case PM_FPA_FILE_JPEG:
+      case PM_FPA_FILE_KAPA:
+      case PM_FPA_FILE_MANAPLOT:
         psTrace ("pmFPAfile", 5, "defer opening %s\n", file->filename);
         break;
 
-    default:
+      default:
         psError(PS_ERR_IO, true, "type mismatch for %s : %d\n", file->filename, file->type);
         return false;
@@ -357,4 +358,11 @@
     case PM_FPA_FILE_WEIGHT:
         if (!pmFPAviewReadFitsWeight(view, file)) {
+            psError(PS_ERR_UNKNOWN, false, "skipping %s (type: %d)\n", file->filename, file->type);
+            return false;
+        }
+        psTrace ("pmFPAfile", 5, "reading %s (type: %d)\n", file->filename, file->type);
+        break;
+    case PM_FPA_FILE_HEADER:
+        if (!pmFPAviewReadFitsHeaderSet(view, file)) {
             psError(PS_ERR_UNKNOWN, false, "skipping %s (type: %d)\n", file->filename, file->type);
             return false;
@@ -432,4 +440,5 @@
     case PM_FPA_FILE_MASK:
     case PM_FPA_FILE_WEIGHT:
+    case PM_FPA_FILE_HEADER:
     case PM_FPA_FILE_FRINGE:
         if (pmFPAviewFreeData(view, file)) {
@@ -525,4 +534,9 @@
         pmFPAviewWriteFitsWeight(view, file, config);
         psTrace ("pmFPAfile", 5, "wrote weight %s (fpa: %p)\n", file->filename, file->fpa);
+        break;
+    case PM_FPA_FILE_HEADER:
+      // pmFPAviewWriteFitsWeight(view, file, config);
+      // psTrace ("pmFPAfile", 5, "wrote weight %s (fpa: %p)\n", file->filename, file->fpa);
+      psAbort ("no HEADER write functions defined");
         break;
     case PM_FPA_FILE_FRINGE:
@@ -616,28 +630,32 @@
     case PM_FPA_FILE_WEIGHT:
     case PM_FPA_FILE_FRINGE: {
-            // create FPA structure component based on view
-            #if 0
-            psMetadata *format = file->format; // Camera format configuration
-            if (!format) {
-                // It's likely a mosaic, for which we don't yet know the appropriate format
-                const psMetadata *camera = file->fpa->camera; // Camera configuration
-                psMetadata *formats = psMetadataLookupMetadata(NULL, camera, "FORMATS"); // The FORMATS
-                if (!formats) {
-                    psError(PS_ERR_UNEXPECTED_NULL, false, "Unable to find FORMATS in camera configuration.\n");
-                    return false;
-                }
-                format = psMetadataLookupMetadata(NULL, formats, config->formatName);
-                if (!format) {
-                    psError(PS_ERR_UNEXPECTED_NULL, false,
-                            "Unable to find format %s in camera configuration.\n", config->formatName);
-                    return false;
-                }
-                file->format = psMemIncrRefCounter(format);
-            }
-            #endif
-            pmFPAAddSourceFromView (file->fpa, view, file->format);
-            psTrace ("pmFPAfile", 5, "created fpa data elements for %s (fpa: %p)\n", file->name, file->fpa);
-            break;
-        }
+	// create FPA structure component based on view
+	// XXX drop this ifdef'ed out code??
+#if 0
+	psMetadata *format = file->format; // Camera format configuration
+	if (!format) {
+	    // It's likely a mosaic, for which we don't yet know the appropriate format
+	    const psMetadata *camera = file->fpa->camera; // Camera configuration
+	    psMetadata *formats = psMetadataLookupMetadata(NULL, camera, "FORMATS"); // The FORMATS
+	    if (!formats) {
+		psError(PS_ERR_UNEXPECTED_NULL, false, "Unable to find FORMATS in camera configuration.\n");
+		return false;
+	    }
+	    format = psMetadataLookupMetadata(NULL, formats, config->formatName);
+	    if (!format) {
+		psError(PS_ERR_UNEXPECTED_NULL, false,
+			"Unable to find format %s in camera configuration.\n", config->formatName);
+		return false;
+	    }
+	    file->format = psMemIncrRefCounter(format);
+	}
+#endif
+	pmFPAAddSourceFromView (file->fpa, view, file->format);
+	psTrace ("pmFPAfile", 5, "created fpa data elements for %s (fpa: %p)\n", file->name, file->fpa);
+	break;
+    }
+    case PM_FPA_FILE_HEADER:
+      psAbort ("Create not defined for HEADER");
+      break;
     case PM_FPA_FILE_SX:
     case PM_FPA_FILE_RAW:
@@ -691,4 +709,5 @@
     case PM_FPA_FILE_MASK:
     case PM_FPA_FILE_WEIGHT:
+    case PM_FPA_FILE_HEADER:
     case PM_FPA_FILE_FRINGE:
     case PM_FPA_FILE_CMF:
