0fb6cafc5cebeb0f383804ed9df2cd01be10227f max Fri Mar 7 22:51:27 2014 -0800 fixing hgBlat not working in browserbox if hg19.2bit does not exist,refs #11957 diff --git src/hg/hgBlat/hgBlat.c src/hg/hgBlat/hgBlat.c index 15e79c8..1ed5435 100644 --- src/hg/hgBlat/hgBlat.c +++ src/hg/hgBlat/hgBlat.c @@ -76,31 +76,43 @@ isTrans, db); sr = sqlGetResult(conn, query); if ((row = sqlNextRow(sr)) == NULL) { errAbort("Can't find a server for %s database %s. Click " "here " "to reset to default database.", (isTrans ? "translated" : "DNA"), db, cartSidUrlString(cart), hDefaultDb()); } st.db = cloneString(row[0]); st.genome = cloneString(row[1]); st.isTrans = atoi(row[2]); st.host = cloneString(row[3]); st.port = cloneString(row[4]); -st.nibDir = hReplaceGbdb(row[5]); + +// hReplaceGbdb checks only if the dir exists +// with the way nibDir works, we have to check if the 2bit file exists +// do the rewriting, then strip off the 2bit filename again +char buf[4096]; +safef(buf, sizeof(buf), "%s/%s.2bit", row[5], st.db); +char *newPath = hReplaceGbdb(buf); + +char dir[4096]; +splitPath(newPath, dir, NULL, NULL); +st.nibDir = cloneString(dir); +freeMem(newPath); + sqlFreeResult(&sr); hDisconnectCentral(&conn); return &st; } void findClosestServer(char **pDb, char **pOrg) /* If db doesn't have a blat server, look for the closest db (or org) that has one, * as hgPcr does. */ { char *db = *pDb, *org = *pOrg; struct sqlConnection *conn = hConnectCentral(); char query[256]; sqlSafef(query, sizeof(query), "select db from blatServers where db = '%s'", db); if (!sqlExists(conn, query)) {