deac2d6a8dfdae141830f4ac0b79d86c48d0f0a0
max
  Wed Mar 12 07:23:25 2014 -0700
Moving code from commit 0fb6cafc5cebeb0f383804ed9df2cd01be10227f into hdbbecause it's also needed by hgPcr. refs #11957. (Should not affect RR, as
hReplaceGbdb will return the same string, so it only adds and then
removes a .2bit filename from the path.)

diff --git src/hg/inc/hdb.h src/hg/inc/hdb.h
index 2b9aa4a..bc55619 100644
--- src/hg/inc/hdb.h
+++ src/hg/inc/hdb.h
@@ -194,30 +194,34 @@
 
 boolean hTableExists(char *db, char *table);
 /* Return TRUE if a table exists in database. */
 
 boolean hTableOrSplitExists(char *db, char *table);
 /* Return TRUE if table (or a chrN_table) exists in database. */
 
 char *hTableForTrack(char *db, char *trackName);
 /* Return a table for a track in db. Returns one of the split
  * tables, or main table if not split */
 
 char *hReplaceGbdb(char* fileName);
 /* clone and change a filename that can be located in /gbdb to somewhere else
  * according to hg.conf's "gbdbLoc1" and "gbdbLoc2". Result has to be freed. */
 
+char *hReplaceGbdbSeqDir(char *path, char *db);
+/* similar to hReplaceGbdb, but accepts a nib or 2bit "directory" (basename) under
+ * gbdb, like /gbdb/hg19 (for jkLib that means /gbdb/hg19/hg19.2bit). */
+
 void hParseTableName(char *db, char *table, char trackName[HDB_MAX_TABLE_STRING],
 		     char chrom[HDB_MAX_CHROM_STRING]);
 /* Parse an actual table name like "chr17_random_blastzWhatever" into
  * the track name (blastzWhatever) and chrom (chr17_random). */
 
 int hChromSize(char *db, char *chromName);
 /* Return size of chromosome. */
 
 struct chromInfo *hGetChromInfo(char *db, char *chrom);
 /* Get chromInfo for named chromosome (case-insens.) from db.
  * Return NULL if no such chrom. */
 
 struct dnaSeq *hFetchSeq(char *fileName, char *seqName, int start, int end);
 /* Fetch sequence from file.  If it is a .2bit file then fetch the named sequence.
 If it is .nib then just ignore seqName. */