Index: trunk/icd-demo/src/icd-demo.c
===================================================================
--- trunk/icd-demo/src/icd-demo.c	(revision 9127)
+++ trunk/icd-demo/src/icd-demo.c	(revision 9741)
@@ -11,6 +11,6 @@
 
     if (argc != 3) {
-	fprintf (stderr, "USAGE: icd-demo (input) (output)\n");
-	exit (2);
+        fprintf (stderr, "USAGE: icd-demo (input) (output)\n");
+        exit (2);
     }
 
@@ -38,5 +38,5 @@
     while ((item = psListGetAndIncrement (iter)) != NULL) {
         char *file = item->data.V;
-	parseFile (fits, file);
+        parseFile (fits, file);
     }
     psFitsClose (fits);
@@ -58,151 +58,151 @@
     psMetadata *blank  = psMetadataLookupPtr (NULL, fd, "BLANK");
     if (blank) {
-	fprintf (stderr, "adding BLANK\n");
-	psFitsWriteBlank (fits, blank, "");
+        fprintf (stderr, "adding BLANK\n");
+        psFitsWriteBlank (fits, blank, "");
     }
 
     psMetadata *fitstable  = psMetadataLookupPtr (NULL, fd, "FITSTABLE");
     if (fitstable) {
-	fprintf (stderr, "adding TABLE\n");
-	psMetadata *header  = psMetadataLookupPtr (NULL, fitstable, "HEADER");
-	psMetadata *columns = psMetadataLookupPtr (NULL, fitstable, "COLUMNS");
-	psMetadataIterator *iter = psMetadataIteratorAlloc (columns, PS_LIST_HEAD, NULL);
-	char *extname       = psMetadataLookupStr (NULL, header, "EXTNAME");
-
-	psArray *table = psArrayAlloc (10);
-
-	// XXX insert unit values: we need a method to do this in psFitsWriteTable
-	int nCol = 1;
-	while ((col = psMetadataGetAndIncrement (iter)) != NULL) {
-	    psMetadata *md = col->data.V;
-	    char *unit = psMetadataLookupStr (NULL, md, "TUNIT");
-	    if (strcasecmp (unit, "NONE")) {
-		sprintf (unitWord, "TUNIT%d", nCol);
-		psMetadataAddStr (header, PS_LIST_TAIL, unitWord, 0, "", unit);
-	    }
-	    nCol ++;
-	}
-	psMetadataIteratorSet (iter, PS_LIST_HEAD);
-
-	// make a total of NN fake data columns
-	for (int i = 0; i < 10; i++) {
-	
-	    int nCol = 1;
-
-	    psMetadata *row = psMetadataAlloc ();
-
-	    while ((col = psMetadataGetAndIncrement (iter)) != NULL) {
-
-		psMetadata *md = col->data.V;
-
-		char *format = psMetadataLookupStr (NULL, md, "TFORM");
-		char *comment = psMetadataLookupStr (NULL, md, "COMMENT");
-		char *unit = psMetadataLookupStr (NULL, md, "TUNIT");
-		if (strcasecmp (unit, "NONE")) {
-		    sprintf (unitWord, "TUNIT%d", nCol);
-		    psMetadataAddStr (header, PS_LIST_TAIL, unitWord, 0, "", unit);
-		}
-
-		if (!strcasecmp (format, "I")) {
-		    int value;
-
-		    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
-		    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
-
-		    min = atoi (minWord);
-		    if (!strcasecmp (minWord, "NONE")) min = 0;
-		    max = atoi (maxWord);
-		    if (!strcasecmp (maxWord, "NONE")) max = 100;
-		    range = max - min;
-
-		    rvalue = psRandomUniform (rnd);
-		    value = range * rvalue + min;
-
-		    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_S16, comment, value);
-		}
-
-		if (!strcasecmp (format, "J")) {
-		    int value;
-
-		    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
-		    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
-
-		    min = atoi (minWord);
-		    if (!strcasecmp (minWord, "NONE")) min = 0;
-		    max = atoi (maxWord);
-		    if (!strcasecmp (maxWord, "NONE")) max = 100;
-		    range = max - min;
-
-		    rvalue = psRandomUniform (rnd);
-		    value = range * rvalue + min;
-
-		    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_S32, comment, value);
-		}
-
-		if (!strcasecmp (format, "K")) {
-		    long int value;
-
-		    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
-		    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
-
-		    min = atoi (minWord);
-		    if (!strcasecmp (minWord, "NONE")) min = 0;
-		    max = atoi (maxWord);
-		    if (!strcasecmp (maxWord, "NONE")) max = 100;
-		    range = max - min;
-
-		    rvalue = psRandomUniform (rnd);
-		    value = range * rvalue + min;
-
-		    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_S64, comment, value);
-		}
-
-		if (!strcasecmp (format, "E")) {
-		    float value;
-
-		    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
-		    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
-
-		    min = atoi (minWord);
-		    if (!strcasecmp (minWord, "NONE")) min = 0;
-		    max = atoi (maxWord);
-		    if (!strcasecmp (maxWord, "NONE")) max = 100;
-		    range = max - min;
-
-		    rvalue = psRandomUniform (rnd);
-		    value = range * rvalue + min;
-
-		    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_F32, comment, value);
-		}
-
-		if (!strcasecmp (format, "D")) {
-		    double value;
-
-		    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
-		    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
-
-		    min = atoi (minWord);
-		    if (!strcasecmp (minWord, "NONE")) min = 0;
-		    max = atoi (maxWord);
-		    if (!strcasecmp (maxWord, "NONE")) max = 100;
-		    range = max - min;
-
-		    rvalue = psRandomUniform (rnd);
-		    value = range * rvalue + min;
-
-		    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_F64, comment, value);
-		}
-
-		if (!strcasecmp (format, "A")) {
-		    char *value = NULL;
-		    psStringAppend (&value, "word %03d", i);
-		    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_STRING, "", value);
-		}
-	    }
-	    psArrayAdd (table, 100, row);
-	    psFree (row);
-	    psMetadataIteratorSet (iter, PS_LIST_HEAD);
-	}
-	psFitsInsertTable (fits, header, table, extname, true);
+        fprintf (stderr, "adding TABLE\n");
+        psMetadata *header  = psMetadataLookupPtr (NULL, fitstable, "HEADER");
+        psMetadata *columns = psMetadataLookupPtr (NULL, fitstable, "COLUMNS");
+        psMetadataIterator *iter = psMetadataIteratorAlloc (columns, PS_LIST_HEAD, NULL);
+        char *extname       = psMetadataLookupStr (NULL, header, "EXTNAME");
+
+        psArray *table = psArrayAllocEmpty (10);
+
+        // XXX insert unit values: we need a method to do this in psFitsWriteTable
+        int nCol = 1;
+        while ((col = psMetadataGetAndIncrement (iter)) != NULL) {
+            psMetadata *md = col->data.V;
+            char *unit = psMetadataLookupStr (NULL, md, "TUNIT");
+            if (strcasecmp (unit, "NONE")) {
+                sprintf (unitWord, "TUNIT%d", nCol);
+                psMetadataAddStr (header, PS_LIST_TAIL, unitWord, 0, "", unit);
+            }
+            nCol ++;
+        }
+        psMetadataIteratorSet (iter, PS_LIST_HEAD);
+
+        // make a total of NN fake data columns
+        for (int i = 0; i < 10; i++) {
+
+            int nCol = 1;
+
+            psMetadata *row = psMetadataAlloc ();
+
+            while ((col = psMetadataGetAndIncrement (iter)) != NULL) {
+
+                psMetadata *md = col->data.V;
+
+                char *format = psMetadataLookupStr (NULL, md, "TFORM");
+                char *comment = psMetadataLookupStr (NULL, md, "COMMENT");
+                char *unit = psMetadataLookupStr (NULL, md, "TUNIT");
+                if (strcasecmp (unit, "NONE")) {
+                    sprintf (unitWord, "TUNIT%d", nCol);
+                    psMetadataAddStr (header, PS_LIST_TAIL, unitWord, 0, "", unit);
+                }
+
+                if (!strcasecmp (format, "I")) {
+                    int value;
+
+                    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
+                    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
+
+                    min = atoi (minWord);
+                    if (!strcasecmp (minWord, "NONE")) min = 0;
+                    max = atoi (maxWord);
+                    if (!strcasecmp (maxWord, "NONE")) max = 100;
+                    range = max - min;
+
+                    rvalue = psRandomUniform (rnd);
+                    value = range * rvalue + min;
+
+                    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_S16, comment, value);
+                }
+
+                if (!strcasecmp (format, "J")) {
+                    int value;
+
+                    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
+                    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
+
+                    min = atoi (minWord);
+                    if (!strcasecmp (minWord, "NONE")) min = 0;
+                    max = atoi (maxWord);
+                    if (!strcasecmp (maxWord, "NONE")) max = 100;
+                    range = max - min;
+
+                    rvalue = psRandomUniform (rnd);
+                    value = range * rvalue + min;
+
+                    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_S32, comment, value);
+                }
+
+                if (!strcasecmp (format, "K")) {
+                    long int value;
+
+                    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
+                    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
+
+                    min = atoi (minWord);
+                    if (!strcasecmp (minWord, "NONE")) min = 0;
+                    max = atoi (maxWord);
+                    if (!strcasecmp (maxWord, "NONE")) max = 100;
+                    range = max - min;
+
+                    rvalue = psRandomUniform (rnd);
+                    value = range * rvalue + min;
+
+                    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_S64, comment, value);
+                }
+
+                if (!strcasecmp (format, "E")) {
+                    float value;
+
+                    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
+                    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
+
+                    min = atoi (minWord);
+                    if (!strcasecmp (minWord, "NONE")) min = 0;
+                    max = atoi (maxWord);
+                    if (!strcasecmp (maxWord, "NONE")) max = 100;
+                    range = max - min;
+
+                    rvalue = psRandomUniform (rnd);
+                    value = range * rvalue + min;
+
+                    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_F32, comment, value);
+                }
+
+                if (!strcasecmp (format, "D")) {
+                    double value;
+
+                    char *minWord = psMetadataLookupStr (NULL, md, "TMIN");
+                    char *maxWord = psMetadataLookupStr (NULL, md, "TMAX");
+
+                    min = atoi (minWord);
+                    if (!strcasecmp (minWord, "NONE")) min = 0;
+                    max = atoi (maxWord);
+                    if (!strcasecmp (maxWord, "NONE")) max = 100;
+                    range = max - min;
+
+                    rvalue = psRandomUniform (rnd);
+                    value = range * rvalue + min;
+
+                    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_F64, comment, value);
+                }
+
+                if (!strcasecmp (format, "A")) {
+                    char *value = NULL;
+                    psStringAppend (&value, "word %03d", i);
+                    psMetadataAdd (row, PS_LIST_TAIL, col->name, PS_DATA_STRING, "", value);
+                }
+            }
+            psArrayAdd (table, 100, row);
+            psFree (row);
+            psMetadataIteratorSet (iter, PS_LIST_HEAD);
+        }
+        psFitsInsertTable (fits, header, table, extname, true);
     }
     return 1;
