Index: trunk/psModules/src/objects/pmSourceIO.c
===================================================================
--- trunk/psModules/src/objects/pmSourceIO.c	(revision 7306)
+++ trunk/psModules/src/objects/pmSourceIO.c	(revision 7311)
@@ -3,6 +3,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-06-03 00:40:28 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-03 01:02:08 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -57,5 +57,5 @@
 }
 
-// Given a FITS file pointer, read the table of object data
+// Given a FITS file pointer, write the table of object data
 bool pmFPAviewWriteObjects (const pmFPAview *view, pmFPAfile *file)
 {
@@ -64,9 +64,13 @@
 
     if (view->chip == -1) {
-        pmFPAWriteObjects (fpa, view, file);
+        if (!pmFPAWriteObjects (fpa, view, file)) {
+            psError(PS_ERR_IO, false, "Failed to write objects from fpa");
+            return false;
+        }
         return true;
     }
 
     if (view->chip >= fpa->chips->n) {
+        psError(PS_ERR_UNKNOWN, false, "Writing chip == %d (>= chips->n == %d)", view->chip, fpa->chips->n);
         return false;
     }
@@ -74,9 +78,14 @@
 
     if (view->cell == -1) {
-        pmChipWriteObjects (chip, view, file);
+        if (!pmChipWriteObjects (chip, view, file)) {
+            psError(PS_ERR_IO, false, "Failed to write objects from chip");
+            return false;
+        }
         return true;
     }
 
     if (view->cell >= chip->cells->n) {
+        psError(PS_ERR_UNKNOWN, false, "Writing cell == %d (>= cells->n == %d)",
+                view->cell, chip->cells->n);
         return false;
     }
@@ -84,14 +93,24 @@
 
     if (view->readout == -1) {
-        pmCellWriteObjects (cell, view, file);
+        if (!pmCellWriteObjects (cell, view, file)) {
+            psError(PS_ERR_IO, false, "Failed to write objects from cell");
+            return false;
+        }
+
         return true;
     }
 
     if (view->readout >= cell->readouts->n) {
+        psError(PS_ERR_UNKNOWN, false, "Writing readout == %d (>= readouts->n == %d)",
+                view->readout, cell->readouts->n);
         return false;
     }
     pmReadout *readout = cell->readouts->data[view->readout];
 
-    pmReadoutWriteObjects (readout, view, file);
+    if (!pmReadoutWriteObjects (readout, view, file)) {
+        psError(PS_ERR_IO, false, "Failed to write objects from readout %d", view->readout);
+        return false;
+    }
+
     return true;
 }
@@ -104,5 +123,8 @@
 
         pmChip *chip = fpa->chips->data[i];
-        pmChipWriteObjects (chip, view, file);
+        if (!pmChipWriteObjects (chip, view, file)) {
+            psError(PS_ERR_IO, false, "Failed to write %dth chip", i);
+            return false;
+        }
     }
     return true;
@@ -116,5 +138,8 @@
 
         pmCell *cell = chip->cells->data[i];
-        pmCellWriteObjects (cell, view, file);
+        if (!pmCellWriteObjects (cell, view, file)) {
+            psError(PS_ERR_IO, false, "Failed to write %dth cell", i);
+            return false;
+        }
     }
     return true;
@@ -128,5 +153,8 @@
 
         pmReadout *readout = cell->readouts->data[i];
-        pmReadoutWriteObjects (readout, view, file);
+        if (!pmReadoutWriteObjects (readout, view, file)) {
+            psError(PS_ERR_IO, false, "Failed to write %dth readout", i);
+            return false;
+        }
     }
     return true;
@@ -181,7 +209,12 @@
         psMetadataCopy (outhead, updates);
 
-        pmSourcesWriteCMP (sources, filename, outhead);
+        bool status = pmSourcesWriteCMP (sources, filename, outhead);
         psFree (outhead);
         psFree (filename);
+
+        if (!status) {
+            psError(PS_ERR_IO, false, "Failed to write CMP file\n");
+            return false;
+        }
         break;
 
