caee2c1a226397ab30cbfdcf7f1c20dad8dff339 galt Wed Feb 5 12:10:12 2014 -0800 oops swap comments, thanks for catching, Tim. diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c index 46c8187..cff33bc 100644 --- src/hg/lib/hdb.c +++ src/hg/lib/hdb.c @@ -5024,39 +5024,33 @@ return 0; } else if (sameString(str1, "M") && !sameString(str2, "M")) return 1; else if (!sameString(str1, "M") && sameString(str2, "M")) return -1; else if (str1[0] == 'U' && str2[0] != 'U') return 1; else if (str1[0] != 'U' && str2[0] == 'U') return -1; else return strcmp(str1, str2); } int chrSlNameCmp(const void *el1, const void *el2) -/* Compare chromosome or linkage group names str1 and str2 - * to achieve this order: - * chr1 .. chr22 - * chrX - * chrY - * chrM - * chr1_{alt, random} .. chr22_{alt, random} - * chrUns - */ +/* Compare chromosome names by number, then suffix. el1 and el2 must be + * slName **s (as passed in by slSort) whose names match the regex + * "chr([0-9]+|[A-Za-z0-9]+)(_[A-Za-z0-9_]+)?". */ { struct slName *sln1 = *(struct slName **)el1; struct slName *sln2 = *(struct slName **)el2; return chrNameCmp(sln1->name, sln2->name); } int chrNameCmpWithAltRandom(char *str1, char *str2) /* Compare chromosome or linkage group names str1 and str2 * to achieve this order: * chr1 .. chr22 * chrX * chrY * chrM * chr1_{alt, random} .. chr22_{alt, random} * chrUns @@ -5125,33 +5119,39 @@ return 0; } else if (str1[0] == 'U' && str2[0] != 'U') return 1; else if (str1[0] != 'U' && str2[0] == 'U') return -1; else if (sameString(str1, "M") && !sameString(str2, "M")) return 1; else if (!sameString(str1, "M") && sameString(str2, "M")) return -1; else return strcmp(str1, str2); } int chrSlNameCmpWithAltRandom(const void *el1, const void *el2) -/* Compare chromosome names by number, then suffix. el1 and el2 must be - * slName **s (as passed in by slSort) whose names match the regex - * "chr([0-9]+|[A-Za-z0-9]+)(_[A-Za-z0-9_]+)?". */ +/* Compare chromosome or linkage group names str1 and str2 + * to achieve this order: + * chr1 .. chr22 + * chrX + * chrY + * chrM + * chr1_{alt, random} .. chr22_{alt, random} + * chrUns + */ { struct slName *sln1 = *(struct slName **)el1; struct slName *sln2 = *(struct slName **)el2; return chrNameCmpWithAltRandom(sln1->name, sln2->name); } int bedCmpExtendedChr(const void *va, const void *vb) /* Compare to sort based on chrom,chromStart. Use extended * chrom name comparison, that strip prefixes and does numeric compare */ { const struct bed *a = *((struct bed **)va); const struct bed *b = *((struct bed **)vb); int dif; dif = chrNameCmp(a->chrom, b->chrom); if (dif == 0)