c0d5a48b95aae318fe5ab5f12b14149356d17753
chmalee
  Thu Jan 21 11:46:02 2021 -0800
Support mouseOver trackDb setting for bigPsl (previously allowed but not supported) and add generic position information for bigPsl clicks, both to get lrg bigPsl otto track up to date with old version, refs #24672

diff --git src/hg/hgTracks/bigBedTrack.c src/hg/hgTracks/bigBedTrack.c
index fcfcf31..798309c 100644
--- src/hg/hgTracks/bigBedTrack.c
+++ src/hg/hgTracks/bigBedTrack.c
@@ -521,30 +521,33 @@
         int i =  0;
         for (field = fields; field != NULL; field = field->next)
             fieldNames[i++] = field->name;
         }
     }
 
 // a fake item that is the union of the items that span the current  window
 struct linkedFeatures *spannedLf = NULL;
 unsigned filtered = 0;
 for (bb = bbList; bb != NULL; bb = bb->next)
     {
     struct linkedFeatures *lf = NULL;
     char *bedRow[bbi->fieldCount];
     if (sameString(track->tdb->type, "bigPsl"))
         {
+        // fill out bedRow to support mouseOver pattern replacements
+        char startBuf[16], endBuf[16];
+        bigBedIntervalToRow(bb, chromName, startBuf, endBuf, bedRow, ArraySize(bedRow));
         char *seq, *cds;
         struct psl *psl = pslFromBigPsl(chromName, bb, seqTypeField,  &seq, &cds);
         int sizeMul =  pslIsProtein(psl) ? 3 : 1;
         boolean isXeno = 0;  // just affects grayIx
         boolean nameGetsPos = FALSE; // we want the name to stay the name
 
         lf = lfFromPslx(psl, sizeMul, isXeno, nameGetsPos, track);
         lf->original = psl;
         if ((seq != NULL) && (lf->orientation == -1))
             reverseComplement(seq, strlen(seq));
         lf->extra = seq;
         lf->cds = cds;
         }
     else if (sameString(tdb->type, "bigDbSnp"))
         {