578933212e6c900f4cda77f4d9cd1e7d01b9ace1
kate
  Thu Nov 3 16:09:25 2016 -0700
Initialize tissues from cart. refs #17369

diff --git src/hg/lib/cart.c src/hg/lib/cart.c
index 0997d3f..a5b0bf3 100644
--- src/hg/lib/cart.c
+++ src/hg/lib/cart.c
@@ -1161,30 +1161,46 @@
 {
 struct slName *slnList = NULL;
 struct hashEl *hel = hashLookup(cart->hash, var);
 while (hel != NULL)
     {
     if (hel->val != NULL)
 	{
 	struct slName *sln = slNameNew(hel->val);
 	slAddHead(&slnList, sln);
 	}
     hel = hashLookupNext(hel);
     }
 return slnList;
 }
 
+struct hash *cartHashList(struct cart *cart, char *var)
+/* Return hash with multiple values for the same var or NULL if not found. */
+{
+struct hashEl *hel = hashLookup(cart->hash, var);
+struct hash *valHash = hashNew(0);
+while (hel != NULL)
+    {
+    if (hel->val != NULL)
+	{
+        hashAdd(valHash, hel->val, NULL);
+	}
+    hel = hashLookupNext(hel);
+    }
+return valHash;
+}
+
 void cartAddString(struct cart *cart, char *var, char *val)
 /* Add string valued cart variable (if called multiple times on same var,
  * will create a list -- retrieve with cartOptionalSlNameList. */
 {
 hashAdd(cart->hash, var, cloneString(val));
 }
 
 void cartSetString(struct cart *cart, char *var, char *val)
 /* Set string valued cart variable. */
 {
 hashUpdateDynamicVal(cart->hash, var, cloneString(val));
 }
 
 
 int cartInt(struct cart *cart, char *var)