Index: /trunk/psLib/src/types/psMetadata.c
===================================================================
--- /trunk/psLib/src/types/psMetadata.c	(revision 7936)
+++ /trunk/psLib/src/types/psMetadata.c	(revision 7937)
@@ -12,6 +12,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.119 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-07-18 21:53:25 $
+ *  @version $Revision: 1.120 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-07-19 03:43:14 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -465,26 +465,37 @@
 
 // may need to extend this to change the keyname in the copy
-psMetadata *psMetadataItemTransfer(psMetadata *out, const psMetadata *in, const char *key)
-{
-    PS_ASSERT_PTR_NON_NULL(in, NULL);
+bool psMetadataItemTransfer(psMetadata *out,
+                            const psMetadata *in,
+                            const char *key)
+{
+    if (in == NULL) {
+        psError(PS_ERR_BAD_PARAMETER_NULL, true,
+                "psMetadataItemTransfer:  'in' cannot be NULL.\n");
+        return false;
+    }
+    if (out == NULL) {
+        psError(PS_ERR_BAD_PARAMETER_NULL, true,
+                "psMetadataItemTransfer:  'out' cannot be NULL.\n");
+        return false;
+    }
     if (key == NULL) {
         psError(PS_ERR_BAD_PARAMETER_NULL, true,
                 "psMetadataItemTransfer:  'key' cannot be NULL.\n");
-        return NULL;
+        return false;
     }
 
     psMetadataItem *item = psMetadataLookup(in, key);
     if (!item) {
-        return NULL;
-    }
-    if (out == NULL) {
-        out = psMetadataAlloc();
-    }
-    if (!psMetadataAddItem(out, item, PS_LIST_HEAD, PS_META_DEFAULT) ) {
-        psFree(out);
-        return NULL;
-    }
-
-    return out;
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                "psMetadataItemTransfer:  Could not find 'key' in psMetadata 'in'.\n");
+        return false;
+    }
+    if (!psMetadataAddItem(out, item, PS_LIST_TAIL, PS_META_REPLACE) ) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                "psMetadataItemTransfer:  Could not add item to psMetadata 'out'.\n");
+        return false;
+    }
+
+    return true;
 }
 
Index: /trunk/psLib/src/types/psMetadata.h
===================================================================
--- /trunk/psLib/src/types/psMetadata.h	(revision 7936)
+++ /trunk/psLib/src/types/psMetadata.h	(revision 7937)
@@ -11,6 +11,6 @@
 *  @author Ross Harman, MHPCC
 *
-*  @version $Revision: 1.82 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-07-18 21:53:25 $
+*  @version $Revision: 1.83 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-07-19 03:43:14 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -400,5 +400,5 @@
  *  @return bool:       True if successful, otherwise false.
  */
-psMetadata *psMetadataItemTransfer(
+bool psMetadataItemTransfer(
     psMetadata *out,                   ///< output Metadata container for copying.
     const psMetadata *in,              ///< Metadata collection from which to copy.
Index: /trunk/psLib/test/types/tst_psMetadata_01.c
===================================================================
--- /trunk/psLib/test/types/tst_psMetadata_01.c	(revision 7936)
+++ /trunk/psLib/test/types/tst_psMetadata_01.c	(revision 7937)
@@ -5,6 +5,6 @@
 *  @author  dRob, MHPCC
 *
-*  @version $Revision: 1.9 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2006-07-18 21:53:25 $
+*  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2006-07-19 03:43:14 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -100,50 +100,54 @@
 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");
+    psMetadataAddS32(md, PS_LIST_TAIL, "metaITEM", 0, "no Comment", 666);
+
+    //attempt transfer to NULL 'out' metadata.
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if ( psMetadataItemTransfer(out, md, "metaITEM") ) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                "psMetadataItemTransfer failed to return false for NULL 'out' metadata.\n");
         return 1;
     }
+    out = psMetadataAlloc();
+    //attempt to transfer using a NULL key.
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if ( psMetadataItemTransfer(out, md, NULL) ) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                "psMetadataItemTransfer failed to return false for NULL key input.\n");
+        return 2;
+    }
+    //attempt transfer to NULL 'in' metadata.
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if ( psMetadataItemTransfer(out, NULL, "metaITEM") ) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                "psMetadataItemTransfer failed to return false for NULL 'in' metadata.\n");
+        return 3;
+    }
+    //attempt to transfer using an allocated metadata and invalid key
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
+    if (psMetadataItemTransfer(out, md, "metaITEM2") ) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                "psMetadataItemTransfer failed to return false for invalid 'key'.\n");
+        return 4;
+    }
+    //attempt to transfer with all valid inputs.
+    psMetadataItem *item = NULL;
+    if ( !psMetadataItemTransfer(out, md, "metaITEM") ) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                "psMetadataItemTransfer failed with valid inputs.\n");
+        return 7;
+    }
+    item = psMetadataGet(out, PS_LIST_HEAD);
+    if (item->data.S32 != 666 || strncmp(item->comment, "no Comment", 20)) {
+        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
+                "psMetadataItemTransfer failed to correctly transfer item data.\n");
+        return 8;
+    }
+
     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;
Index: /trunk/psLib/test/types/verified/tst_psMetadata_01.stderr
===================================================================
--- /trunk/psLib/test/types/verified/tst_psMetadata_01.stderr	(revision 7936)
+++ /trunk/psLib/test/types/verified/tst_psMetadata_01.stderr	(revision 7937)
@@ -14,4 +14,29 @@
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMetadata_01.c                                        *
+*            TestPoint: psMetadata_01{psMetadataItemTransfer()}                    *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+<DATE><TIME>|<HOST>|I|testMetadataItemTransfer
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psMetadataItemTransfer (FILE:LINENO)
+    psMetadataItemTransfer:  'out' cannot be NULL.
+<DATE><TIME>|<HOST>|I|testMetadataItemTransfer
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psMetadataItemTransfer (FILE:LINENO)
+    psMetadataItemTransfer:  'key' cannot be NULL.
+<DATE><TIME>|<HOST>|I|testMetadataItemTransfer
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psMetadataItemTransfer (FILE:LINENO)
+    psMetadataItemTransfer:  'in' cannot be NULL.
+<DATE><TIME>|<HOST>|I|testMetadataItemTransfer
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psMetadataItemTransfer (FILE:LINENO)
+    psMetadataItemTransfer:  Could not find 'key' in psMetadata 'in'.
+
+---> TESTPOINT PASSED (psMetadata_01{psMetadataItemTransfer()} | tst_psMetadata_01.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMetadata_01.c                                        *
 *            TestPoint: psMetadata_01{psMetadataPrint}                             *
 *             TestType: Positive                                                   *
