src/hg/lib/cart.c 1.116

1.116 2010/01/14 07:37:39 kent
Adding cartOrTdbString and related functions.
Index: src/hg/lib/cart.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/cart.c,v
retrieving revision 1.115
retrieving revision 1.116
diff -b -B -U 4 -r1.115 -r1.116
--- src/hg/lib/cart.c	4 Jan 2010 19:12:28 -0000	1.115
+++ src/hg/lib/cart.c	14 Jan 2010 07:37:39 -0000	1.116
@@ -1862,4 +1862,33 @@
 for(subTdb=tdb->subtracks;subTdb!=NULL;subTdb=subTdb->next)
     cartRemoveAllForTdbAndChildren(cart,subTdb);
 }
 
+char *cartOrTdbString(struct cart *cart, struct trackDb *tdb, char *var, char *defaultVal)
+/* Look first in cart, then in trackDb for var.  Return defaultVal if not found. */
+{
+char *tdbDefault = trackDbSettingClosestToHomeOrDefault(tdb, var, defaultVal);
+boolean compositeLevel = isNameAtCompositeLevel(tdb, var);
+return cartUsualStringClosestToHome(cart, tdb, compositeLevel, var, tdbDefault);
+}
+
+int cartOrTdbInt(struct cart *cart, struct trackDb *tdb, char *var, int defaultVal)
+/* Look first in cart, then in trackDb for var.  Return defaultVal if not found. */
+{
+char *a = cartOrTdbString(cart, tdb, var, NULL);
+if (a == NULL)
+    return defaultVal;
+else
+    return atoi(a);
+}
+
+
+double cartOrTdbDouble(struct cart *cart, struct trackDb *tdb, char *var, double defaultVal)
+/* Look first in cart, then in trackDb for var.  Return defaultVal if not found. */
+{
+char *a = cartOrTdbString(cart, tdb, var, NULL);
+if (a == NULL)
+    return defaultVal;
+else
+    return atof(a);
+}
+