src/hg/hgc/parClick.c 1.2
1.2 2010/02/18 18:16:08 markd
fixed bug when clicking on one par when both are displayed
Index: src/hg/hgc/parClick.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/parClick.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -b -B -U 4 -r1.1 -r1.2
--- src/hg/hgc/parClick.c 18 Feb 2010 06:01:45 -0000 1.1
+++ src/hg/hgc/parClick.c 18 Feb 2010 18:16:08 -0000 1.2
@@ -33,25 +33,25 @@
dif = strcmp(a->chrom, b->chrom);
return dif;
}
-static struct bed *getClickedPar(struct bed **pars)
-/* find par record that was clicked on, removing it from the list */
+static struct bed *getClickedPar(char *item, struct bed **pars)
+/* find par record that was clicked on, removing it from the list d*/
{
struct bed *clickedPar = NULL, *otherPars = NULL, *par;
while ((par = slPopHead(pars)) != NULL)
{
- if (sameString(par->chrom, seqName) && positiveRangeIntersection(par->chromStart, par->chromEnd, winStart, winEnd))
+ if (sameString(par->chrom, seqName) && sameString(par->name, item) && positiveRangeIntersection(par->chromStart, par->chromEnd, winStart, winEnd))
{
if (clickedPar != NULL)
- errAbort("multiple par rows overlapping %s:%d-%d", seqName, winStart, winEnd);
+ errAbort("multiple par rows named %s overlapping %s:%d-%d", item, seqName, winStart, winEnd);
clickedPar = par;
}
else
slAddHead(&otherPars, par);
}
if (clickedPar == NULL)
- errAbort("no par row overlapping %s:%d-%d", seqName, winStart, winEnd);
+ errAbort("no par row %s overlapping %s:%d-%d", item, seqName, winStart, winEnd);
*pars = otherPars;
return clickedPar;
}
@@ -121,9 +121,9 @@
struct bed *pars = loadParTable(tdb);
if (slCount(pars) & 1)
errAbort("par items not paired in %s", tdb->tableName);
-struct bed *clickedPar = getClickedPar(&pars);
+struct bed *clickedPar = getClickedPar(name, &pars);
struct bed *homPar = getHomologousPar(clickedPar, &pars);
slSort(&pars, parCmp);
cartWebStart(cart, database, "Pseudoautosomal regions");