7f396ae51fb175f8a7785556f329d3391596b4b0 braney Mon Feb 23 16:07:03 2015 -0800 fix duplicated lines in group menu bug #14878 diff --git src/hg/lib/cartTrackDb.c src/hg/lib/cartTrackDb.c index b8cbf71..eb18344 100644 --- src/hg/lib/cartTrackDb.c +++ src/hg/lib/cartTrackDb.c @@ -96,38 +96,39 @@ /* if we have custom tracks, we want to add the track hubs * after that group */ struct grp *addAfter = NULL; if ((groupList != NULL) && sameString(groupList->name, "user")) addAfter = groupList; /* Add in groups from hubs. */ for (group = slPopHead(pHubGrpList); group != NULL; group = slPopHead(pHubGrpList)) { // if the group isn't represented in any track, don't add it to list if (!hashLookup(groupsInTrackList,group->name)) continue; /* check to see if we're inserting hubs rather than * adding them to the front of the list */ + struct grp *newGrp = grpDup(group); if (addAfter != NULL) { - group->next = addAfter->next; - addAfter->next = group; + newGrp->next = addAfter->next; + addAfter->next = newGrp; } else - slAddHead(&groupList, group); - hashAdd(groupsInDatabase, group->name, group); + slAddHead(&groupList, newGrp); + hashAdd(groupsInDatabase, newGrp->name, newGrp); } /* Do some error checking for tracks with group names that are * not in database. Just warn about them. */ if (!trackHubDatabase(db)) for (track = trackList; track != NULL; track = track->next) { if (!hashLookup(groupsInDatabase, track->grp)) warn("Track %s has group %s, which isn't in grp table", track->table, track->grp); } /* Create dummy group for all tracks. */ AllocVar(group); group->name = cloneString("allTracks");