Index: /trunk/psLib/src/fits/psFits.c
===================================================================
--- /trunk/psLib/src/fits/psFits.c	(revision 6353)
+++ /trunk/psLib/src/fits/psFits.c	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.51 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-14 22:18:30 $
+ *  @version $Revision: 1.52 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -245,5 +245,5 @@
     }
 
-    bool psFitsMoveLast(const psFits* fits)
+    bool psFitsMoveLast(psFits* fits)
     {
         if (fits == NULL) {
Index: /trunk/psLib/src/fits/psFits.h
===================================================================
--- /trunk/psLib/src/fits/psFits.h	(revision 6353)
+++ /trunk/psLib/src/fits/psFits.h	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-14 22:18:30 $
+ *  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -115,5 +115,5 @@
 */
 bool psFitsMoveLast(
-    const psFits* fits                 ///< the psFits object to move
+    psFits* fits                       ///< the psFits object to move
 );
 
Index: /trunk/psLib/src/fits/psFitsHeader.c
===================================================================
--- /trunk/psLib/src/fits/psFitsHeader.c	(revision 6353)
+++ /trunk/psLib/src/fits/psFitsHeader.c	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-14 22:18:30 $
+ *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -167,22 +167,13 @@
 }
 
-psMetadata* psFitsReadHeaderSet(psMetadata* out,
-                                const psFits* fits)
+psMetadata* psFitsReadHeaderSet(const psFits* fits)
 {
     if (fits == NULL) {
         psError(PS_ERR_BAD_PARAMETER_NULL, true,
                 PS_ERRORTEXT_psFits_NULL);
-        psFree(out);
         return NULL;
     }
 
-    if (out == NULL) {
-        out = psMetadataAlloc();
-        if (out == NULL) {
-            psError(PS_ERR_UNKNOWN, false,
-                    "Failed to allocate a new psMetadata container.");
-            return NULL;
-        }
-    }
+    psMetadata* out = psMetadataAlloc();
 
     int size = psFitsGetSize(fits);
Index: /trunk/psLib/src/fits/psFitsHeader.h
===================================================================
--- /trunk/psLib/src/fits/psFitsHeader.h	(revision 6353)
+++ /trunk/psLib/src/fits/psFitsHeader.h	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-11-14 22:18:30 $
+ *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -37,9 +37,4 @@
  */
 psMetadata* psFitsReadHeaderSet(
-    psMetadata* out,
-    ///< The psMetadata to add the header data via psMetadata items.  If null, a
-    ///< new psMetadata is created.  The keys of the psMetadata are the extension names
-    ///< of the cooresponding HDUs.
-
     const psFits* fits                       ///< the psFits object
 );
Index: /trunk/psLib/src/fits/psFitsTable.c
===================================================================
--- /trunk/psLib/src/fits/psFitsTable.c	(revision 6353)
+++ /trunk/psLib/src/fits/psFitsTable.c	(revision 6354)
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-02-03 00:11:58 $
+ *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -23,4 +23,5 @@
 #include "psTrace.h"
 #include "psVector.h"
+#include "config.h"
 
 #define MAX_STRING_LENGTH 256  // maximum length string for FITS routines
@@ -309,5 +310,5 @@
         if (status == 0) {
 
-            #define READ_TABLE_ROW_CASE(FITSTYPE, NATIVETYPE, TYPE) \
+            #define READ_TABLE_ROW_CASE(FITSTYPE, NATIVETYPE, TYPE, VECTYPE) \
         case FITSTYPE: { \
                 if (repeat == 1) { \
@@ -322,12 +323,15 @@
                                   "", (ps##TYPE)value); \
                 } else { \
-                    psVector* value = psVectorAlloc(repeat,PS_DATA_##TYPE); \
+                    NATIVETYPE* value = psAlloc(sizeof(NATIVETYPE)*repeat); \
+                    psVector* vec = psVectorAlloc(repeat,PS_TYPE_##VECTYPE); \
                     int anynul = 0; \
                     fits_read_col(fits->fd, FITSTYPE, col,row+1, \
-                                  1, repeat, NULL, value->data.U8, &anynul, &status); \
-                    psMetadataAdd(data,PS_LIST_TAIL, name, \
-                                  PS_DATA_VECTOR, \
-                                  "", value); \
+                                  1, repeat, NULL, value, &anynul, &status); \
+                    for (int lcv = 0; lcv < repeat; lcv++) { \
+                        vec->data.VECTYPE[lcv] = value[lcv]; \
+                    } \
+                    psMetadataAdd(data,PS_LIST_TAIL, name, PS_DATA_VECTOR, "", vec); \
                     psFree(value); \
+                    psFree(vec); \
                 } \
                 break; \
@@ -338,8 +342,8 @@
             case TSHORT:
             case TLONGLONG:
-                READ_TABLE_ROW_CASE(TLONG, long, S32)
-                READ_TABLE_ROW_CASE(TFLOAT, float, F32)
-                READ_TABLE_ROW_CASE(TDOUBLE, double, F64)
-                READ_TABLE_ROW_CASE(TLOGICAL, bool, BOOL);
+                READ_TABLE_ROW_CASE(TLONG, long, S32,S32)
+                READ_TABLE_ROW_CASE(TFLOAT, float, F32,F32)
+                READ_TABLE_ROW_CASE(TDOUBLE, double, F64,F64)
+                READ_TABLE_ROW_CASE(TLOGICAL, bool, BOOL,S8);
             case TSTRING: {
                     char* value = psAlloc(repeat+1);
Index: /trunk/psLib/src/imageops/psImageGeomManip.c
===================================================================
--- /trunk/psLib/src/imageops/psImageGeomManip.c	(revision 6353)
+++ /trunk/psLib/src/imageops/psImageGeomManip.c	(revision 6354)
@@ -10,6 +10,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-01-28 01:12:11 $
+ *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:35 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -689,5 +689,5 @@
 
 psImage* psImageTransform(psImage *output,
-                          psArray* blankPixels,
+                          psPixels** blankPixels,
                           const psImage *input,
                           const psImage *inputMask,
@@ -706,10 +706,7 @@
     }
     psElemType type = input->type.type;
-    psPixels* tempPixels = NULL;
-
-    if(blankPixels != NULL) {
-        tempPixels = psPixelsAlloc(blankPixels->nalloc);
-        tempPixels->n = blankPixels->n;
-        tempPixels->data = (psPixelCoord*)blankPixels->data;
+
+    if (blankPixels != NULL && *blankPixels == NULL) {
+        *blankPixels = psPixelsAlloc(0);
     }
 
@@ -786,8 +783,4 @@
     psPlane outPosition;
     psPlane* inPosition = NULL;
-
-
-
-
 
     #define PSIMAGE_TRANSFORM_DOTRANSFORM(TYPE,MODE) \
@@ -808,5 +801,5 @@
     if (isnan(value)) { \
         if (blankPixels != NULL) { \
-            p_psPixelsAppend(tempPixels, tempPixels->nalloc, outPosition.x, outPosition.y); \
+            p_psPixelsAppend(*blankPixels, (*blankPixels)->nalloc, outPosition.x, outPosition.y); \
         } \
         value = exposedValue; \
@@ -873,5 +866,4 @@
 
     psFree(inPosition);
-    psFree(tempPixels);
 
     return output;
Index: /trunk/psLib/src/imageops/psImageGeomManip.h
===================================================================
--- /trunk/psLib/src/imageops/psImageGeomManip.h	(revision 6353)
+++ /trunk/psLib/src/imageops/psImageGeomManip.h	(revision 6354)
@@ -8,6 +8,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.13 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-01-28 01:12:11 $
+ *  @version $Revision: 1.14 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-02-08 01:03:35 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -144,5 +144,5 @@
 psImage* psImageTransform(
     psImage *output,                   ///< psImage to recycle, or NULL
-    psArray* blankPixels,              ///< list of pixels in output image not set, or NULL if no list is desired.
+    psPixels** blankPixels,            ///< list of pixels in output image not set, or NULL if no list is desired.
     const psImage *input,              ///< psImage to apply transform to
     const psImage *inputMask,          ///< if not NULL, mask of input psImage
@@ -151,5 +151,5 @@
     psRegion region,                   ///< the size of the transformed image
     const psPixels* pixels,            /**< if not NULL, consists of psPixelCoords and specifies which pixels in
-                                                                             *  output image shall be transformed; otherwise, entire image generated*/
+                                                                                 *  output image shall be transformed; otherwise, entire image generated*/
     psImageInterpolateMode mode,       ///< the interpolation scheme to be used
     double exposedValue                   ///< Exposed value to which non-corresponding pixels are set
Index: /trunk/psLib/test/fits/tst_psFits.c
===================================================================
--- /trunk/psLib/test/fits/tst_psFits.c	(revision 6353)
+++ /trunk/psLib/test/fits/tst_psFits.c	(revision 6354)
@@ -6,6 +6,6 @@
 *  @author Robert DeSonia, MHPCC
 *
-*  @version $Revision: 1.15 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-02-03 00:12:01 $
+*  @version $Revision: 1.16 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-02-08 01:03:35 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -818,5 +818,5 @@
     psFitsMoveExtNum(fits,numHDUs/2, false);
 
-    psMetadata* headerSet = psFitsReadHeaderSet(NULL, fits);
+    psMetadata* headerSet = psFitsReadHeaderSet(fits);
 
     if (headerSet == NULL) {
@@ -859,6 +859,5 @@
     }
 
-    psMetadata* set2 = psMetadataAlloc();
-    set2 = psFitsReadHeaderSet(set2,NULL);
+    psMetadata* set2 = psFitsReadHeaderSet(NULL);
     if (set2 != NULL) {
         psError(PS_ERR_UNKNOWN, false,
@@ -867,7 +866,5 @@
     }
 
-    psMetadata* set3 = psMetadataAlloc();
-    set3 = psFitsReadHeaderSet(set3,fits);
-
+    psMetadata* set3 = psFitsReadHeaderSet(fits);
     if (set3 == NULL) {
         psError(PS_ERR_UNKNOWN, false,
@@ -1258,4 +1255,5 @@
                            "row K"
                        };
+
 
     if (! makeTable()) {
@@ -1525,10 +1523,4 @@
     mkdir("tmpImages",0777);
 
-    testReadTypeSize(1,1,0,0,0,0,U8,"tmpImages/1x1_" "U8.fits");
-    testReadTypeSize(M,1,M/4,0,M*3/4,0,U8,"tmpImages/Mx1_" "U8.fits");
-    testReadTypeSize(1,N,0,N/4,0,N*3/4,U8,"tmpImages/1xN_" "U8.fits");
-    testReadTypeSize(M,N,M/4,N/4,M*3/4,N*3/4,U8,"tmpImages/MxN_" "U8.fits");
-
-
     testReadType(U8,"U8.fits");
     testReadType(S8,"S8.fits");   // Not a requirement
