314b81670d2d1446d4da81108ac0ce2a72fc569d markd Fri Jan 6 15:32:57 2017 -0800 bigTransMap hgc working diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c index 358e252..bd91c71 100644 --- src/hg/lib/hdb.c +++ src/hg/lib/hdb.c @@ -2496,30 +2496,56 @@ char *hGenome(char *database) /* Return genome associated with database. * use freeMem on this when done. */ { return hDbDbOptionalField(database, "genome"); } char *hScientificName(char *database) /* Return scientific name for organism represented by this database */ /* Return NULL if unknown database */ /* NOTE: must free returned string after use */ { return hDbDbOptionalField(database, "scientificName"); } +char *hOrgShortName(char *org) +/* Get the short name for an organism. Returns NULL if org is NULL. + * WARNING: static return */ +{ +static int maxOrgSize = 7; +static char orgNameBuf[128]; +if (org == NULL) + return NULL; +strncpy(orgNameBuf, org, sizeof(orgNameBuf)-1); +orgNameBuf[sizeof(orgNameBuf)-1] = '\0'; +char *shortOrg = firstWordInLine(orgNameBuf); +if (strlen(shortOrg) > maxOrgSize) + shortOrg[maxOrgSize] = '\0'; +return shortOrg; +} + +char *hOrgShortForDb(char *db) +/* look up the short organism scientific name given an organism db. + * WARNING: static return */ +{ +char *org = hScientificName(db); +char *shortOrg = hOrgShortName(org); +freeMem(org); +return shortOrg; +} + char *hHtmlPath(char *database) /* Return /gbdb path name to html description for this database */ /* Return NULL if unknown database */ /* NOTE: must free returned string after use */ { char *htmlPath = hDbDbOptionalField(database, "htmlPath"); char *newPath = hReplaceGbdb(htmlPath); freez(&htmlPath); return newPath; } char *hFreezeDate(char *database) /* Return freeze date of database. Use freeMem when done. */ { return hDbDbField(database, "description");