14374de7f70bbc06bdb97d6a07cd0f896575e9e3
braney
  Mon May 23 10:20:13 2022 -0700
fix weird bug where HTML file didn't exist, but there was a directory of
that name

diff --git src/hg/makeDb/hgTrackDb/hgTrackDb.c src/hg/makeDb/hgTrackDb/hgTrackDb.c
index 036298a..043ffce 100644
--- src/hg/makeDb/hgTrackDb/hgTrackDb.c
+++ src/hg/makeDb/hgTrackDb/hgTrackDb.c
@@ -443,31 +443,31 @@
 static void layerOnHtml(char *dirName, struct trackDb *tdbList, char *database)
 /* Read in track HTML call bottom-up. */
 {
 char fileName[512];
 struct trackDb *td;
 for (td = tdbList; td != NULL; td = td->next)
     {
     if (isEmpty(td->html))
         {
         char *htmlName = trackDbSetting(td, "html");
         if (htmlName == NULL)
             htmlName = td->track;
 	safef(fileName, sizeof(fileName), "%s/%s.html", dirName, htmlName);
 	if (!fileExists(fileName))
             safef(fileName, sizeof(fileName), "%s/%s", dirName, htmlName);
-	if (fileExists(fileName))
+	if (fileExists(fileName) && !isDirectory(fileName))
             {
 	    td->html = readHtmlRecursive(fileName, database, td);
             // Check for note ASCII characters at higher levels of verboseness.
             // Normally, these are acceptable ISO-8859-1 characters
             if  ((verboseLevel() >= 2) && hasNonAsciiChars(td->html))
                 verbose(2, "Note: non-printing or non-ASCII characters in %s\n", fileName);
             }
         }
     }
 }
 
 static char *subsituteVariables(struct hashEl *el, char *database)
 /* substitute variables where supported */
 {
 char* val = (char*)el->val;