edfe4db20446f5c266f2ba1155fc694d30fdf00c
braney
  Fri Feb 3 09:10:41 2023 -0800
ongoing work on snake display for chains

diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 8566398..0374eb1 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -3668,30 +3668,36 @@
 {
 if (otherTbf != NULL)
     {
     return twoBitReadSeqFrag(otherTbf, otherChrom, otherStart, otherEnd);
     }
 else
     {
     return hChromSeq(otherDb, otherChrom, otherStart, otherEnd);
     }
 }
 
 void genericChainClick(struct sqlConnection *conn, struct trackDb *tdb,
                        char *item, int start, char *otherDb)
 /* Handle click in chain track, at least the basics. */
 {
+boolean doSnake = cartOrTdbBoolean(cart, tdb, "doSnake" , FALSE) && cfgOptionBooleanDefault("canSnake", FALSE);
+
+extern void doSnakeClick(struct trackDb *tdb, char *itemName);
+if (doSnake)
+    return doSnakeClick(tdb, item);
+
 struct twoBitFile *otherTbf = getOtherTwoBitUrl(tdb);
 char *thisOrg = hOrganism(database);
 char *otherOrg = NULL;
 struct chain *chain = NULL, *subChain = NULL, *toFree = NULL;
 int chainWinSize;
 double subSetScore = 0.0;
 int qs, qe;
 boolean nullSubset = FALSE;
 boolean otherIsActive = FALSE;
 char *hubUrl = NULL;   // if otherDb is a genark browser
 
 if (hDbIsActive(otherDb))
     otherIsActive = TRUE;
 else 
     hubUrl = genarkUrl(otherDb); // may be NULL