Index: trunk/psLib/src/fits/psFits.c
===================================================================
--- trunk/psLib/src/fits/psFits.c	(revision 5099)
+++ trunk/psLib/src/fits/psFits.c	(revision 5136)
@@ -1,3 +1,3 @@
-/** @file  psFits.c
+/** @file  psFits.cr
  *
  *  @brief Contains Fits I/O routines
@@ -7,6 +7,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.45 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-09-22 23:19:38 $
+ *  @version $Revision: 1.46 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-09-26 21:13:22 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -156,20 +156,20 @@
 }
 
-static bool convertMetadataTypeToBinaryTForm(psMetadataType type, char** fitsType)
+static bool convertMetadataTypeToBinaryTForm(psDataType type, char** fitsType)
 {
     switch (type) {
-    case PS_META_BOOL:
+    case PS_DATA_BOOL:
         *fitsType = psStringCopy("1L");
         break;
-    case PS_META_S32:
+    case PS_DATA_S32:
         *fitsType = psStringCopy("1J");
         break;
-    case PS_META_F32:
+    case PS_DATA_F32:
         *fitsType = psStringCopy("1E");
         break;
-    case PS_META_F64:
+    case PS_DATA_F64:
         *fitsType = psStringCopy("1D");
         break;
-    case PS_META_STR:
+    case PS_DATA_STRING:
         *fitsType = psStringCopy("1A");
         break;
@@ -510,5 +510,5 @@
                                         PS_LIST_TAIL,
                                         keyName,
-                                        PS_META_S32 | PS_META_DUPLICATE_OK,
+                                        PS_DATA_S32 | PS_META_DUPLICATE_OK,
                                         keyComment,
                                         atoi(keyValue));
@@ -520,5 +520,5 @@
                                         PS_LIST_TAIL,
                                         keyName,
-                                        PS_META_F64 | PS_META_DUPLICATE_OK,
+                                        PS_DATA_F64 | PS_META_DUPLICATE_OK,
                                         keyComment,
                                         atof(keyValue));
@@ -531,5 +531,5 @@
                                             PS_LIST_TAIL,
                                             keyName,
-                                            PS_META_STR | PS_META_DUPLICATE_OK,
+                                            PS_DATA_STRING | PS_META_DUPLICATE_OK,
                                             keyComment,
                                             keyValue+1);
@@ -538,5 +538,5 @@
                                             PS_LIST_TAIL,
                                             keyName,
-                                            PS_META_STR | PS_META_DUPLICATE_OK,
+                                            PS_DATA_STRING | PS_META_DUPLICATE_OK,
                                             keyComment,
                                             keyValue);
@@ -548,5 +548,5 @@
                                         PS_LIST_TAIL,
                                         keyName,
-                                        PS_META_BOOL | PS_META_DUPLICATE_OK,
+                                        PS_DATA_BOOL | PS_META_DUPLICATE_OK,
                                         keyComment,
                                         tempBool);
@@ -1053,5 +1053,5 @@
     while ( (item=psListGetAndIncrement(iter)) != NULL ) {
         switch (item->type) {
-        case PS_META_BOOL: {
+        case PS_DATA_BOOL: {
                 int value = item->data.B;
                 fits_update_key(fits->fd,
@@ -1063,5 +1063,5 @@
                 break;
             }
-        case PS_META_S32:
+        case PS_DATA_S32:
             fits_update_key(fits->fd,
                             TINT,
@@ -1071,5 +1071,5 @@
                             &status);
             break;
-        case PS_META_F32:
+        case PS_DATA_F32:
             fits_update_key(fits->fd,
                             TFLOAT,
@@ -1079,5 +1079,5 @@
                             &status);
             break;
-        case PS_META_F64:
+        case PS_DATA_F64:
             fits_update_key(fits->fd,
                             TDOUBLE,
@@ -1087,5 +1087,5 @@
                             &status);
             break;
-        case PS_META_STR:
+        case PS_DATA_STRING:
             fits_update_key(fits->fd,
                             TSTRING,
@@ -1192,5 +1192,5 @@
                         col, name, typecode, repeat, (double)value); \
                 psMetadataAdd(data,PS_LIST_TAIL, name, \
-                              PS_META_##TYPE, \
+                              PS_DATA_##TYPE, \
                               "", (ps##TYPE)value); \
                 break; \
@@ -1214,5 +1214,5 @@
                     if (anynul == 0) {
                         psMetadataAdd(data,PS_LIST_TAIL, name,
-                                      PS_META_STR,
+                                      PS_DATA_STRING,
                                       "", value);
                     }
@@ -1494,5 +1494,5 @@
                                    PS_LIST_HEAD,true);
             while ( (item=psListGetAndIncrement(iter)) != NULL) {
-                if (PS_META_IS_PRIMITIVE(item->type) || item->type == PS_META_STR) {
+                if (PS_DATA_IS_PRIMITIVE(item->type) || item->type == PS_DATA_STRING) {
                     bool found = false;
                     psMetadataItem* fItem = NULL;
@@ -1506,5 +1506,5 @@
                     if (! found) {
                         psArrayAdd(columns, columns->nalloc, item);
-                    } else if (item->type == PS_META_STR &&
+                    } else if (item->type == PS_DATA_STRING &&
                                strlen(fItem->data.V) > strlen(item->data.V)) {
                         // got to keep the longest string value as to know what size to create the table column
@@ -1567,9 +1567,9 @@
         int row;
         item = columns->data[n];
-        if (PS_META_IS_PRIMITIVE(item->type)) {
+        if (PS_DATA_IS_PRIMITIVE(item->type)) {
             psVector* col = NULL;
             psArray* colArray = NULL;
             switch (item->type) {
-            case PS_META_S32:
+            case PS_DATA_S32:
                 col = psVectorAlloc(table->n, PS_TYPE_S32);
                 for (row = 0; row < table->n; row++) {
@@ -1587,5 +1587,5 @@
                 break;
 
-            case PS_META_F32:
+            case PS_DATA_F32:
                 col = psVectorAlloc(table->n, PS_TYPE_F32);
                 for (row = 0; row < table->n; row++) {
@@ -1603,5 +1603,5 @@
                 break;
 
-            case PS_META_F64:
+            case PS_DATA_F64:
                 col = psVectorAlloc(table->n, PS_TYPE_F64);
                 for (row = 0; row < table->n; row++) {
@@ -1619,5 +1619,5 @@
                 break;
 
-            case PS_META_BOOL:
+            case PS_DATA_BOOL:
                 col = psVectorAlloc(table->n, PS_TYPE_BOOL);
                 for (row = 0; row < table->n; row++) {
@@ -1635,5 +1635,5 @@
                 break;
 
-            case PS_META_STR:
+            case PS_DATA_STRING:
                 colArray = psArrayAlloc(table->n);
                 for (row = 0; row < table->n; row++) {
@@ -1656,5 +1656,5 @@
             }
             psFree(col);
-        } else if (item->type == PS_META_STR) {
+        } else if (item->type == PS_DATA_STRING) {
             psArray* col = psArrayAlloc(table->n);
             for (row = 0; row < table->n; row++) {
@@ -1716,12 +1716,14 @@
 
     while ( (item=psMetadataGetAndIncrement(iter)) != NULL) {
-        if (PS_META_IS_PRIMITIVE(item->type)) {
-            // operating on primitive data type, i.e., not a complex object
+        if (PS_DATA_IS_PRIMITIVE(item->type) || item->type == PS_DATA_STRING) {
+            // operating on primitive data type or string, i.e., not a complex object
             int colnum = 0;
 
             if ( fits_get_colnum(fits->fd, CASESEN, item->name, &colnum, &status) == 0) {
                 // cooresponding column found in table
-                int dataType = 0;
-                convertPsTypeToFits(item->type, NULL, NULL, &dataType);
+                int dataType = TSTRING; // assume string unless it is a primative type
+                if (PS_DATA_IS_PRIMITIVE(item->type)) {
+                    convertPsTypeToFits(item->type, NULL, NULL, &dataType);
+                }
 
                 if (fits_write_col(fits->fd, dataType, colnum, row+1, 1, 1, &item->data,&status) != 0) {
