Index: /trunk/psLib/src/types/psMetadataConfig.c
===================================================================
--- /trunk/psLib/src/types/psMetadataConfig.c	(revision 9847)
+++ /trunk/psLib/src/types/psMetadataConfig.c	(revision 9848)
@@ -10,6 +10,6 @@
 *  @author Eric Van Alst, MHPCC
 *
-*  @version $Revision: 1.105 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-11-03 20:20:38 $
+*  @version $Revision: 1.106 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-11-04 00:20:09 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -365,5 +365,12 @@
     saveValue = inString;
     while(*inString!='\0') {
-        strtod(inString, &end);
+        double check = strtod(inString, &end);
+        if (isnan(check) || check < DBL_EPSILON) {  //make sure inString contains valid #'s
+            if ( strncmp(inString, "0", 1) != 0 || strncmp(inString, " 0", 2) != 0
+                    || isnan(check)) {
+                *status = 1;
+                return NULL;
+            }
+        }
         /*        if(inString==end) {
                     *status = 1;
@@ -625,5 +632,5 @@
         // Point to first item in template
         iter = psListIteratorAlloc(template->
-                                   list,PS_LIST_HEAD,true);
+                                   list, PS_LIST_HEAD, true);
         // For each item in template parse line string for values
         for(psS32 i = 0;
@@ -633,31 +640,36 @@
             templateItem = psListGetAndIncrement(iter)
                            ;
-            if(templateItem == NULL) {
-                psFree(md);
-                psFree(iter);
-                md = NULL;
-                break;
-            }
+            /*            if(templateItem == NULL) {
+                            psFree(md);
+                            psFree(iter);
+                            md = NULL;
+                            break;
+                        }
+            */
             // Get the next token on the line
-            token = getToken(&linePtr," ",&status,false);
+            token = getToken(&linePtr, " ", &status, false);
             if(token != NULL) {
                 // Allocate metadata item
-                mdItem = psMetadataItemAllocStr(templateItem->name,templateItem->comment,token);
-                if(mdItem == NULL) {
-                    psFree(md);
-                    md = NULL;
-                    psFree(token);
-                    psFree(iter);
-                    break;
-                }
-                // Add item to metadata
-                if(!psMetadataAddItem(md, mdItem, PS_LIST_TAIL, PS_META_DEFAULT)) {
-                    psFree(md);
-                    md = NULL;
-                    psFree(mdItem);
-                    psFree(token);
-                    psFree(iter);
-                    break;
-                }
+                mdItem = psMetadataItemAllocStr(templateItem->name,
+                                                templateItem->comment, token);
+                /*                if(mdItem == NULL) {
+                                    psFree(md);
+                                    md = NULL;
+                                    psFree(token);
+                                    psFree(iter);
+                                    break;
+                                }
+                 
+                                // Add item to metadata
+                                if(!psMetadataAddItem(md, mdItem, PS_LIST_TAIL, PS_META_DEFAULT)) {
+                                    psFree(md);
+                                    md = NULL;
+                                    psFree(mdItem);
+                                    psFree(token);
+                                    psFree(iter);
+                                    break;
+                                }
+                */
+                psMetadataAddItem(md, mdItem, PS_LIST_TAIL, PS_META_DEFAULT);
                 psFree(mdItem);
             } else {
@@ -833,11 +845,13 @@
         status = 0;
         strValue = getToken(&linePtr, "#", &status,true);
-        if(status) {
-            psError(PS_ERR_IO, true,
-                    _("Failed to read a metadata %s on line %u."), "value", lineCount);
-            psFree(strType);
-            psFree(strValue);
-            return false;
-        }
+        /*
+                if(status) {
+                    psError(PS_ERR_IO, true,
+                            _("Failed to read a metadata %s on line %u."), "value", lineCount);
+                    psFree(strType);
+                    psFree(strValue);
+                    return false;
+                }
+        */
         if(strValue==NULL) {
             psError(PS_ERR_IO, true,
@@ -850,11 +864,13 @@
         status = 0;
         strComment = getToken(&linePtr,"~", &status,true);
-        if(status) {
-            psError(PS_ERR_IO, true,
-                    _("Failed to read a metadata %s on line %u."), "comment", lineCount);
-            psFree(strType);
-            psFree(strValue);
-            psFree(strComment);
-        }
+        /*
+                if(status) {
+                    psError(PS_ERR_IO, true,
+                            _("Failed to read a metadata %s on line %u."), "comment", lineCount);
+                    psFree(strType);
+                    psFree(strValue);
+                    psFree(strComment);
+                }
+        */
     }
 
Index: /trunk/psLib/test/types/metaconf.in
===================================================================
--- /trunk/psLib/test/types/metaconf.in	(revision 9847)
+++ /trunk/psLib/test/types/metaconf.in	(revision 9848)
@@ -7,15 +7,21 @@
 item5            STR       GNIRTS           # I am a string
 item6            S32       10 1
+item6-1          S32       ~
 item7            S64       555
 item8            S8        3
 item8            S8        5
+item8-1          S8        5 1
 itemu1           U16       2
+itemu1-1         U16       2 1
 itemu2           U32       55
 itemu2-1         U32       55 1
+itemu3-1         U8        1 2
 itemu3           U8        1
 itemu4           U64       1634
 item9            BOOL      F                # I am a boolean2
 item10           S16       16
+item10-1         S16       16 16
 @vector1  S8  1 2 3 4 5   # I am a vector
+@vector1-1 S8 % #
 @vector2  S16 1 2 3 4 5
 @vector3  S32 1 2 3 4 5
@@ -35,6 +41,5 @@
 f32              S32       666              # f32_1
 f32              S32       665              # f32_2
-
-
+f32 MULTI
 
 f32 METADATA
@@ -60,11 +65,15 @@
 END  # I am a metadata
 
-#item1-1          BOOL      TRUTH
-#item11           C32       16+2i            # I am Complex
      TYPE  C32  3
      TYPE  C32  3
      TYPE PS_TYPE_C32 2                 #
-newC32 C32 7i+5
-newC32 PS_TYPE_C32 7i+5
+newC32      C32 7i+5
+newC32      PS_TYPE_C32 7i+5
+#item11           C32       16+2i            # I am Complex
+
+TYPE PS_TYPE_DD D
+newDD   PS_TYPE_DD
+DD2     PS_TYPE_DD   ""
+
 TYPE            1
 TYPE
Index: /trunk/psLib/test/types/tap_psMetadataConfig_input.c
===================================================================
--- /trunk/psLib/test/types/tap_psMetadataConfig_input.c	(revision 9847)
+++ /trunk/psLib/test/types/tap_psMetadataConfig_input.c	(revision 9848)
@@ -241,6 +241,4 @@
             printf("\n\n name=%s\n", tempItem->name);
     }
-
-
     //Check for Memory leaks
     {
