46abf3fb921e63487aff04b1305c75adf26f67cf
jcasper
  Mon Apr 17 20:41:00 2023 -0700
When hgc makes a multiregion view file for interact tracks, it should
make sure to account for the track using chromosome aliases, refs #31056

diff --git src/hg/hgc/interactClick.c src/hg/hgc/interactClick.c
index 5701bb2..a3d6597 100644
--- src/hg/hgc/interactClick.c
+++ src/hg/hgc/interactClick.c
@@ -211,35 +211,38 @@
 slSort(&regions, bedCmp);
 struct bed *prevRegion = NULL;
 
 // alternate item colors
 char *colorLight = "184,201,255";
 char *colorDark = "0,0,0";
 boolean doLightColor = TRUE;
 
 // print regions to BED file and custom track
 for (region = regions; region != NULL; region = region->next)
     {
     // filter out nested regions
     if (prevRegion == NULL || differentString(region->chrom, prevRegion->chrom) ||
                 region->chromStart >=  prevRegion->chromEnd)
         {
+        char *localChromName = chromAliasFindNative(region->chrom);
+        if (localChromName == NULL)
+            localChromName = region->chrom;  // For some reason, aliases don't (or don't always) include the native names
         safef(regionInfo, sizeof regionInfo, "%s\t%d\t%d\n",
-                    region->chrom, region->chromStart, region->chromEnd);
+                    localChromName, region->chromStart, region->chromEnd);
         mustWrite(f, regionInfo, strlen(regionInfo));
         int start = max(region->chromStart - padding, 0);
-        int end = min(region->chromEnd + padding, hChromSize(database, region->chrom));
+        int end = min(region->chromEnd + padding, hChromSize(database, localChromName));
         char *color = doLightColor ? colorLight : colorDark;
         doLightColor = !doLightColor;
         dyStringPrintf(ds, "%s\t%d\t%d\t"
                                 "%s:%d+%d_bp\t"
                                 "0\t.\t%d\t%d\t%s\n",
                             region->chrom, start, end,
                                 region->chrom, start+1, end-start,
                                 start, end, color);
         }
     prevRegion = region;
     }
 fclose(f);
 
 // create SHA1 file; used to see if file has changed
 unsigned char hash[SHA_DIGEST_LENGTH];