6350df0843d759575363b01edb907b528f8b5970 kent Sun Feb 15 12:18:04 2015 -0800 Adding routine for sorting elements from a hashInt type hash. diff --git src/lib/hash.c src/lib/hash.c index 71ec77a..f999bec 100644 --- src/lib/hash.c +++ src/lib/hash.c @@ -471,30 +471,39 @@ { const struct hashEl *a = *((struct hashEl **)va); const struct hashEl *b = *((struct hashEl **)vb); return strcmp(a->name, b->name); } int hashElCmpWithEmbeddedNumbers(const void *va, const void *vb) /* Compare two hashEl by name sorting including numbers within name, * suitable for chromosomes, genes, etc. */ { const struct hashEl *a = *((struct hashEl **)va); const struct hashEl *b = *((struct hashEl **)vb); return cmpStringsWithEmbeddedNumbers(a->name, b->name); } +int hashElCmpIntValDesc(const void *va, const void *vb) +/* Compare two hashEl from a hashInt type hash, with highest integer values + * comingFirst. */ +{ +struct hashEl *a = *((struct hashEl **)va); +struct hashEl *b = *((struct hashEl **)vb); +return b->val - a->val; +} + void *hashElFindVal(struct hashEl *list, char *name) /* Look up name in hashEl list and return val or NULL if not found. */ { struct hashEl *el; for (el = list; el != NULL; el = el->next) { if (strcmp(el->name, name) == 0) return el->val; } return NULL; } struct hashEl *hashElListHash(struct hash *hash) /* Return a list of all elements of hash. Free return with hashElFreeList. */ {