Index: trunk/psLib/src/fits/psFitsTable.c
===================================================================
--- trunk/psLib/src/fits/psFitsTable.c	(revision 6314)
+++ 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);
