Index: /trunk/archive/pslib/src/Metadata/Makefile
===================================================================
--- /trunk/archive/pslib/src/Metadata/Makefile	(revision 487)
+++ /trunk/archive/pslib/src/Metadata/Makefile	(revision 488)
@@ -8,9 +8,20 @@
 LIBS = -L$(PSLIB_DIR)/lib -lUtils
 
-PROGS = metadata
+.PHONY : all
+all : metadata.o
+#
+# Test code
+#
+TST_PROGS = tst_metadata
+test : $(TST_PROGS)
+	for p in $(TST_PROGS); do \
+		echo $$p; \
+		$$p; \
+	done
 
-metadata : metadata.o 
-	$(CC) -o metadata metadata.o $(LIBS)
+tst_metadata : tst_metadata.o metadata.o 
+	$(CC) -o metadata tst_metadata.o metadata.o $(LIBS)
 #
+.PHONY :_tags
 _tags :;
 tags : _tags
@@ -18,4 +29,4 @@
 #
 clean :
-	$(RM) $(PROGS) *.o *.a *.log *.dvi *.aux *.toc *.log *.out *~ core TAGS
+	$(RM) $(TST_PROGS) *.o *.a *.log *.dvi *.aux *.toc *.log *.out *~ core TAGS
 empty : clean
Index: /trunk/archive/pslib/src/Metadata/metadata.c
===================================================================
--- /trunk/archive/pslib/src/Metadata/metadata.c	(revision 487)
+++ /trunk/archive/pslib/src/Metadata/metadata.c	(revision 488)
@@ -294,5 +294,5 @@
  * Iterators for the psDlist representation of the metadata
  */
-void psMetadataIterator(psMetadata *ms)
+void psMetadataSetIterator(psMetadata *ms)
 {
     assert (ms != NULL);
@@ -306,5 +306,5 @@
     psMetadataItem *meta = psDlistGetNext(ms->list, 0);
 
-    if (match == NULL || meta == NULL) {
+    if (match == NULL || match[0] == '\0' || meta == NULL) {
 	return meta;
     } else {
@@ -397,70 +397,2 @@
     }
 }
-
-/*****************************************************************************/
-/*
- * Test code
- */
-#if 1
-#include <math.h>
-
-int main(void)
-{
-    psSetTraceLevel("metadata", 1);	// turn on tracing
-    psSetLogFormat("NM");		// suppress some of the psLogMsg verbosity
-
-    psMetadata *ms = psMetadataAlloc(); // set of metadata
-    psMetadataItem *meta = NULL;	    // used to traverse a set of metadata
-
-    for (int i = 0; i < 10; i += 5) {
-	float sqrti = sqrt(i);
-	psMetadataAppend(ms, PS_META_INT, &i, NULL, "const.%d", i);
-	psMetadataAppend(ms, PS_META_FLOAT, &sqrti, "square root", "const.sqrt%d", i);
-    }
-    psMetadataAppend(ms, PS_META_STR | PS_META_NON_UNIQUE, "Bonjour", "French", "lang.hello");
-    psMetadataAppend(ms, PS_META_STR | PS_META_NON_UNIQUE, "Aloha", "Hawaiian", "lang.hello");
-    psMetadataAppend(ms, PS_META_STR | PS_META_NON_UNIQUE, "Good Morning", "English", "lang.hello");
-    /*
-     * Print all metadata starting "lang"
-     */
-    psMetadataItemFree(psMetadataRemove(ms, "lang.hello.0"));
-
-    psMetadataIterator(ms);
-    while ((meta = psMetadataGetNext(ms, "lang")) != NULL) {
-	psMetadataItemPrint(stdout, meta, "");
-    }
-    /*
-     * Remove a key
-     */
-    psMetadataItemFree(psMetadataRemove(ms, "lang.hello"));
-    /*
-     * Print all metadata
-     */
-    fprintf(stdout, "------\n");
-    psMetadataIterator(ms);
-    while ((meta = psMetadataGetNext(ms, NULL)) != NULL) {
-	psMetadataItemPrint(stdout, meta, "");
-    }
-    /*
-     * Look up a key by name
-     */
-    fprintf(stdout, "------\n");
-    fprintf(stdout, "Looking up by name:\n");
-    meta = psMetadataLookup(ms, "const.5");
-    if (meta != NULL) {
-	psMetadataItemPrint(stdout, meta, "");
-    }
-    /*
-     * Clean up
-     */
-    psMetadataFree(ms);
-    /*
-     * Check for memory leaks
-     */
-    fprintf(stderr,"Checking for memory leaks:\n");
-    psTraceReset();
-    psMemCheckLeaks(0, NULL, stderr);
-    
-    return 0;
-}
-#endif
Index: /trunk/archive/pslib/src/Metadata/tst_metadata.c
===================================================================
--- /trunk/archive/pslib/src/Metadata/tst_metadata.c	(revision 488)
+++ /trunk/archive/pslib/src/Metadata/tst_metadata.c	(revision 488)
@@ -0,0 +1,71 @@
+/*****************************************************************************/
+/*
+ * Test code
+ */
+#include <stdlib.h>
+//#include <stdio.h>
+//#include <assert.h>
+//#include <string.h>
+#include <math.h>
+#include "psLib.h"
+#include "psMetadata.h"
+
+int main(void)
+{
+    psSetTraceLevel("metadata", 1);	// turn on tracing
+    psSetLogFormat("NM");		// suppress some of the psLogMsg verbosity
+
+    psMetadata *ms = psMetadataAlloc(); // set of metadata
+    psMetadataItem *meta = NULL;	    // used to traverse a set of metadata
+
+    for (int i = 0; i < 10; i += 5) {
+	float sqrti = sqrt(i);
+	psMetadataAppend(ms, PS_META_INT, &i, NULL, "const.%d", i);
+	psMetadataAppend(ms, PS_META_FLOAT, &sqrti, "square root", "const.sqrt%d", i);
+    }
+    psMetadataAppend(ms, PS_META_STR | PS_META_NON_UNIQUE, "Bonjour", "French", "lang.hello");
+    psMetadataAppend(ms, PS_META_STR | PS_META_NON_UNIQUE, "Aloha", "Hawaiian", "lang.hello");
+    psMetadataAppend(ms, PS_META_STR | PS_META_NON_UNIQUE, "Good Morning", "English", "lang.hello");
+    /*
+     * Print all metadata starting "lang"
+     */
+    psMetadataItemFree(psMetadataRemove(ms, "lang.hello.0"));
+
+    psMetadataSetIterator(ms);
+    while ((meta = psMetadataGetNext(ms, "lang")) != NULL) {
+	psMetadataItemPrint(stdout, meta, "");
+    }
+    /*
+     * Remove a key
+     */
+    psMetadataItemFree(psMetadataRemove(ms, "lang.hello"));
+    /*
+     * Print all metadata
+     */
+    fprintf(stdout, "------\n");
+    psMetadataSetIterator(ms);
+    while ((meta = psMetadataGetNext(ms, NULL)) != NULL) {
+	psMetadataItemPrint(stdout, meta, "");
+    }
+    /*
+     * Look up a key by name
+     */
+    fprintf(stdout, "------\n");
+    fprintf(stdout, "Looking up by name:\n");
+    meta = psMetadataLookup(ms, "const.5");
+    if (meta != NULL) {
+	psMetadataItemPrint(stdout, meta, "");
+    }
+    /*
+     * Clean up
+     */
+    psMetadataFree(ms);
+    /*
+     * Check for memory leaks
+     */
+    fprintf(stderr,"Checking for memory leaks:\n");
+    psTraceReset();
+    psMemCheckLeaks(0, NULL, stderr);
+    
+    return 0;
+}
