src/hg/lib/chainCart.c 1.2

1.2 2009/03/12 00:05:45 hiram
Fixup chain and net trackUi so they will work in multi-views
Index: src/hg/lib/chainCart.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/chainCart.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -b -B -U 4 -r1.1 -r1.2
--- src/hg/lib/chainCart.c	19 Jul 2004 22:45:54 -0000	1.1
+++ src/hg/lib/chainCart.c	12 Mar 2009 00:05:45 -0000	1.2
@@ -11,30 +11,27 @@
 #include "chainCart.h"
 
 static char const rcsid[] = "$Id$";
 
-extern struct cart *cart;      /* defined in hgTracks.c or hgTrackUi */
-
+enum chainColorEnum chainFetchColorOption(struct cart *cart,
+    struct trackDb *tdb, char **optString)
 /******	ColorOption - Chrom colors by default **************************/
-enum chainColorEnum chainFetchColorOption(struct trackDb *tdb,
-	char **optString)
 {
 char *Default = chainColorEnumToString(chainColorChromColors);
-char option[MAX_OPT_STRLEN]; /* .color  */
 char *chainColor = NULL;
 enum chainColorEnum ret;
 
-snprintf( option, sizeof(option), "%s.%s", tdb->tableName, OPT_CHROM_COLORS );
-chainColor = cloneString(cartOptionalString(cart, option));
+chainColor = cloneString(cartOptionalStringClosestToHome(cart, tdb, FALSE,
+	 OPT_CHROM_COLORS));
 
 /*	If chainColor is a string, it came from the cart, otherwise
  *	see if it is specified in the trackDb option, finally
  *	return the default.
  */
 if (!chainColor)
     {
     char * tdbDefault = 
-	trackDbSettingOrDefault(tdb, OPT_CHROM_COLORS, Default);
+	trackDbSettingClosestToHomeOrDefault(tdb, OPT_CHROM_COLORS, Default);
 
     freeMem(chainColor);
     if (differentWord(Default,tdbDefault))
 	chainColor = cloneString(tdbDefault);