Index: trunk/ippTools/src/pxtools.c
===================================================================
--- trunk/ippTools/src/pxtools.c	(revision 23883)
+++ trunk/ippTools/src/pxtools.c	(revision 23918)
@@ -60,5 +60,5 @@
         if (!state) {
             psError(PS_ERR_PROGRAMMING, false, "%s not found in row %ld of table %s",
-                columnName, i, tableName);
+		    columnName, i, tableName);
             return false;
         }
@@ -69,5 +69,5 @@
             // if state isn't cleaned or full we can't set it to cleaned
             psError(PS_ERR_PROGRAMMING, true, "%s with state %s may not be exported cleaned",
-                tableName, state);
+		    tableName, state);
             return false;
         }
@@ -75,2 +75,34 @@
     return true;
 }
+
+// XXX verify data type?
+bool pxAddLabelSearchArgs (pxConfig *config, psMetadata *where, char *name, char *field, char *op) {
+
+    psMetadataItem *item = psMetadataLookup(config->args, name);
+    if (!item) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", name);
+        return false;
+    }
+    psAssert (item->type == PS_DATA_METADATA_MULTI, "%s should be a multi container", name);
+    psAssert (item->data.list->n, "%s should at least have a place-holder", name);
+    psMetadataItem *entry = (psMetadataItem *)item->data.list->head->data;
+    psAssert (entry, "%s should at least have a place-holder", name);
+    if (entry->data.str) {
+	psListIterator *iter = psListIteratorAlloc (item->data.list, PS_LIST_HEAD, true);
+	psMetadataItem *item = NULL;
+	while ((item = psListGetAndIncrement(iter))) {
+	    // need to change the name and comment
+	    psFree (item->name);
+	    item->name = psStringCopy (field);
+	    psFree (item->comment);
+	    item->comment = psStringCopy (op);
+	    if (!psMetadataAddItem(where, item, PS_LIST_TAIL, PS_META_DUPLICATE_OK)) {
+		psError(PS_ERR_UNKNOWN, false, "failed to add item %s", field);
+		psFree(where);
+		return false;
+	    }
+	}
+	psFree (iter);
+    }
+    return true;
+}
