7fbad72434b7fd7559b48236c2d331c79fb9f29f
markd
  Fri Feb 25 21:05:12 2022 -0800
move check for baseColorUseSequence setting until is is actually needed

diff --git src/hg/hgTracks/cds.c src/hg/hgTracks/cds.c
index 61a2a05..d8225d3 100644
--- src/hg/hgTracks/cds.c
+++ src/hg/hgTracks/cds.c
@@ -941,36 +941,38 @@
 int nwords = chopByWhite(buf->string, words, ArraySize(words));
 if ((nwords != ArraySize(words)) || !sameString(words[0], "extFile"))
     errAbort("invalid %s track setting: %s", BASE_COLOR_USE_SEQUENCE,
              seqSource);
 return hDnaSeqGet(database, name, words[1], words[2]);
 }
 
 static struct dnaSeq *maybeGetSeqUpper(struct linkedFeatures *lf,
 				       char *tableName, struct track *tg)
 /* Look up the sequence in genbank tables (hGenBankGetMrna also searches 
  * seq if it can't find it in GB tables) or user's blat sequence, 
  * uppercase and return it if we find it, return NULL if we don't find it. */
 {
 struct dnaSeq *mrnaSeq = NULL;
 char *name = getItemDataName(tg, lf->name);
+if (sameString(tableName,"refGene") || sameString(tableName,"refSeqAli"))
+    mrnaSeq = hGenBankGetMrna(database, name, "refMrna");
+else
+    {
     char *seqSource = trackDbSetting(tg->tdb, BASE_COLOR_USE_SEQUENCE);
     if (seqSource == NULL)
     errAbort("setting '%s' missing for track '%s'", BASE_COLOR_USE_SEQUENCE, tg->track);
-else if (sameString(tableName,"refGene") || sameString(tableName,"refSeqAli"))
-    mrnaSeq = hGenBankGetMrna(database, name, "refMrna");
-else if (sameString(seqSource, "ss"))
+    if (sameString(seqSource, "ss"))
         mrnaSeq = maybeGetUserSeq(name);
 #ifndef GBROWSE
     else if (sameString(seqSource, PCR_RESULT_TRACK_NAME))
         mrnaSeq = maybeGetPcrResultSeq(lf);
 #endif /* GBROWSE */
     else if (startsWith("extFile", seqSource))
         mrnaSeq = maybeGetExtFileSeq(seqSource, name);
     else if (endsWith("ExtFile", seqSource))
         mrnaSeq = maybeGetExtFileSeq(seqSource, name);
     else if (sameString("nameIsSequence", seqSource))
         {
         mrnaSeq = newDnaSeq(cloneString(name), strlen(name), name);
         if (lf->orientation == -1)
             reverseComplement(mrnaSeq->dna, mrnaSeq->size);
         }
@@ -997,31 +999,31 @@
         {
         char *table = seqSource;
         nextWord(&table);
         mrnaSeq = hGenBankGetMrna(database, name, table);
         }
     else if (startsWithWord("db", seqSource))
         {
         char *sourceDb = seqSource;
         nextWord(&sourceDb);
         if (isEmpty(sourceDb))
             sourceDb = database;
         mrnaSeq = hChromSeq(sourceDb, name, 0, 0);
         }
     else
         mrnaSeq = hGenBankGetMrna(database, name, NULL);
-
+}
 if (mrnaSeq != NULL)
     touppers(mrnaSeq->dna);
 return mrnaSeq;
 }
 
 
 
 static void makeCdsShades(struct hvGfx *hvg, Color *cdsColor)
 /* setup CDS colors */
 {
 cdsColor[CDS_ERROR] = hvGfxFindColorIx(hvg,0,0,0); 
 cdsColor[CDS_ODD] = hvGfxFindColorIx(hvg,CDS_ODD_R,CDS_ODD_G,CDS_ODD_B);
 cdsColor[CDS_EVEN] = hvGfxFindColorIx(hvg,CDS_EVEN_R,CDS_EVEN_G,CDS_EVEN_B);
 cdsColor[CDS_START] = hvGfxFindColorIx(hvg,CDS_START_R,CDS_START_G,CDS_START_B);
 cdsColor[CDS_STOP] = hvGfxFindColorIx(hvg,CDS_STOP_R,CDS_STOP_G,CDS_STOP_B);