Index: /trunk/psLib/src/types/psMetadata.c
===================================================================
--- /trunk/psLib/src/types/psMetadata.c	(revision 7932)
+++ /trunk/psLib/src/types/psMetadata.c	(revision 7933)
@@ -12,6 +12,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.118 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-07-17 22:41:38 $
+ *  @version $Revision: 1.119 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-07-18 21:53:25 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -465,13 +465,26 @@
 
 // may need to extend this to change the keyname in the copy
-bool psMetadataItemTransfer(psMetadata *out, const psMetadata *in, const char *key)
-{
+psMetadata *psMetadataItemTransfer(psMetadata *out, const psMetadata *in, const char *key)
+{
+    PS_ASSERT_PTR_NON_NULL(in, NULL);
+    if (key == NULL) {
+        psError(PS_ERR_BAD_PARAMETER_NULL, true,
+                "psMetadataItemTransfer:  'key' cannot be NULL.\n");
+        return NULL;
+    }
 
     psMetadataItem *item = psMetadataLookup(in, key);
     if (!item) {
-        return false;
-    }
-
-    return psMetadataAddItem(out, item, PS_LIST_TAIL, PS_META_REPLACE);
+        return NULL;
+    }
+    if (out == NULL) {
+        out = psMetadataAlloc();
+    }
+    if (!psMetadataAddItem(out, item, PS_LIST_HEAD, PS_META_DEFAULT) ) {
+        psFree(out);
+        return NULL;
+    }
+
+    return out;
 }
 
Index: /trunk/psLib/src/types/psMetadata.h
===================================================================
--- /trunk/psLib/src/types/psMetadata.h	(revision 7932)
+++ /trunk/psLib/src/types/psMetadata.h	(revision 7933)
@@ -11,6 +11,6 @@
 *  @author Ross Harman, MHPCC
 *
-*  @version $Revision: 1.81 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-06-27 03:42:01 $
+*  @version $Revision: 1.82 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-07-18 21:53:25 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -400,5 +400,5 @@
  *  @return bool:       True if successful, otherwise false.
  */
-bool psMetadataItemTransfer(
+psMetadata *psMetadataItemTransfer(
     psMetadata *out,                   ///< output Metadata container for copying.
     const psMetadata *in,              ///< Metadata collection from which to copy.
Index: /trunk/psLib/src/types/psMetadataConfig.c
===================================================================
--- /trunk/psLib/src/types/psMetadataConfig.c	(revision 7932)
+++ /trunk/psLib/src/types/psMetadataConfig.c	(revision 7933)
@@ -10,6 +10,6 @@
 *  @author Eric Van Alst, MHPCC
 *
-*  @version $Revision: 1.65 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-07-15 03:29:05 $
+*  @version $Revision: 1.66 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-07-18 21:53:25 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -279,7 +279,19 @@
 
 
-    if(*inString=='T' || *inString=='t' || *inString=='1') {
+    /*    if(*inString=='T' || *inString=='t' || *inString=='1') {
+            value = true;
+        } else if(*inString=='F' || *inString=='f' || *inString=='0') {
+            value = false;
+        } else {
+            *status = 1;
+        }
+    */
+    if ( !strncmp(inString, "T", 2) || !strncmp(inString, "t", 2) ||
+            !strncmp(inString, "1", 2) || !strncmp(inString, "TRUE", 5) ||
+            !strncmp(inString, "true", 5) || !strncmp(inString, "True", 5)) {
         value = true;
-    } else if(*inString=='F' || *inString=='f' || *inString=='0') {
+    } else if ( !strncmp(inString, "F", 2) || !strncmp(inString, "f", 2) ||
+                !strncmp(inString, "0", 2) || !strncmp(inString, "FALSE", 6) ||
+                !strncmp(inString, "false", 6) || !strncmp(inString, "False", 6) ) {
         value = false;
     } else {
Index: /trunk/psLib/test/types/tst_psMetadata_01.c
===================================================================
--- /trunk/psLib/test/types/tst_psMetadata_01.c	(revision 7932)
+++ /trunk/psLib/test/types/tst_psMetadata_01.c	(revision 7933)
@@ -5,6 +5,6 @@
 *  @author  dRob, MHPCC
 *
-*  @version $Revision: 1.8 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2006-06-10 02:28:17 $
+*  @version $Revision: 1.9 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2006-07-18 21:53:25 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -17,8 +17,10 @@
 
 static psS32 testMetadataItemCopy(void);
+static psS32 testMetadataItemTransfer(void);
 static psS32 testMetadataPrint(void);
 
 testDescription tests[] = {
                               {testMetadataItemCopy, 666, "psMetadataItemCopy()", 0, false},
+                              {testMetadataItemTransfer, 1, "psMetadataItemTransfer()", 0, false},
                               {testMetadataPrint,667,"psMetadataPrint",0,false},
                               {NULL}
@@ -93,4 +95,56 @@
     psFree(metadata);
     psFree(item);
+    return 0;
+}
+
+psS32 testMetadataItemTransfer(void)
+{
+    //    psMetadataItem *item = psMetadataItemAlloc("metaITEM", PS_DATA_S32, "no Comment");
+    //    item->data.S32 = 666;
+    //    psMetadataItem *item2 = NULL;
+    psMetadata *md = psMetadataAlloc();
+    //    psMetadata *md2 = psMetadataAlloc();
+    psMetadata *out = NULL;
+    //    out = psMetadataAlloc();
+    //  psMetadataAddItem(md, item, PS_LIST_HEAD, PS_META_DEFAULT);
+    psMetadataAddS32(md, PS_LIST_HEAD, "metaITEM", 0, "no Comment", 666);
+
+    //attempt transfer to NULL metadata.
+    out = psMetadataItemTransfer(out, md, "metaITEM");
+    if ( out == NULL) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                "psMetadataItemTransfer failed to correctly allocate metadata and transfer item.\n");
+        return 1;
+    }
+    psFree(out);
+    /*    //attempt to transfer using a NULL key.
+        psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+        if (psMetadataItemTransfer(mdNULL, md, NULL)) {
+            psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                    "psMetadataItemTransfer failed to return false for NULL key input.\n");
+            return 2;
+        }
+        if (mdNULL != NULL) printf("\nERROR HERE\n");
+        //attempt to transfer using an allocated metadata and valid key
+        if (!psMetadataItemTransfer(md2, md, "metaITEM") ){
+            psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                    "psMetadataItemTransfer failed to correctly transfer item.\n");
+            return 3;
+        }
+    */
+    //    item2 = psMetadataGet(md2, PS_LIST_HEAD);
+    /*    item2 = psMetadataLookup(md2, "metaITEM");
+        if (item2->data.S32 != 666 || strncmp(item2->comment, "no Comment", 20)) {
+            psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                    "psMetadataItemTransfer failed to correctly transfer item data.\n");
+            return 4;
+        }
+      */
+    psFree(md);
+    //    psFree(md2);
+    //    psFree(item);
+    //    psFree(item2);
+    //    psFree(mdNULL);
+
     return 0;
 }
