aab4f66a2aca5293f3536cc1d1438b17d2b09dfd tdreszer Thu May 5 16:14:15 2011 -0700 A large set of tiny changes. These fix a lot of discrepencies with bgcolor and font color declarations which were tripping up docttype 4.01. diff --git src/hg/hgText/hgWigText.c src/hg/hgText/hgWigText.c index c6a8b45..ee403e1 100644 --- src/hg/hgText/hgWigText.c +++ src/hg/hgText/hgWigText.c @@ -1,882 +1,882 @@ /* hgWigText.c - functions for wiggle tracks in hgText */ #include "common.h" #include "wiggle.h" #include "hgColors.h" #include "web.h" #include "cheapcgi.h" #include "hCommon.h" #include "hgText.h" #include "hui.h" #include "customTrack.h" #include "portable.h" /* possible two sets of data could be existing */ static struct wiggleData *wigData[2] = { (struct wiggleData *)NULL, (struct wiggleData *)NULL, }; /* Droplist menu for custom track visibility: */ static char *ctWigVisMenu[] = { "hide", "dense", "full", }; static int ctWigVisMenuSize = sizeof(ctWigVisMenu)/sizeof(char *); /* Droplist menu for custom track data count: */ static char *ctWigCountMenu[] = { "10000", "100000", "1000000", }; static int ctWigCountMenuSize = sizeof(ctWigCountMenu)/sizeof(char *); struct wiggleStats *wigStatsList[2] = { (struct wiggleStats *) NULL, (struct wiggleStats *) NULL, }; struct hash *chromsDone[2]; static void printBedEl(struct bed *bedEl) { printf("%s\t%u\t%u\t%s\n", bedEl->chrom, bedEl->chromStart, bedEl->chromEnd, bedEl->name); } /********* wiggle compare functions ***********************************/ static boolean wigInRange(int tableId, double value, boolean summaryOnly, struct wiggle *wiggle) { boolean ret = FALSE; if (summaryOnly) ret = ((wiggle->lowerLimit <= wigDataConstraint[tableId][1]) && (wiggle->lowerLimit+wiggle->dataRange >= wigDataConstraint[tableId][0])); else ret = (value >= wigDataConstraint[tableId][0] && value <= wigDataConstraint[tableId][1]); return ret; } static boolean wigLessThan(int tableId, double value, boolean summaryOnly, struct wiggle *wiggle) { boolean ret = FALSE; if (summaryOnly) ret = (wiggle->lowerLimit < wigDataConstraint[tableId][0]); else ret = (value < wigDataConstraint[tableId][0]); return ret; } static boolean wigLessEqual(int tableId, double value, boolean summaryOnly, struct wiggle *wiggle) { boolean ret = FALSE; if (summaryOnly) ret = (wiggle->lowerLimit <= wigDataConstraint[tableId][0]); else ret = (value <= wigDataConstraint[tableId][0]); return ret; } static boolean wigEqual(int tableId, double value, boolean summaryOnly, struct wiggle *wiggle) { boolean ret = FALSE; if (summaryOnly) ret = ((wiggle->lowerLimit < wigDataConstraint[tableId][0]) && (wiggle->lowerLimit+wiggle->dataRange > wigDataConstraint[tableId][0])); else ret = (value == wigDataConstraint[tableId][0]); return ret; } static boolean wigNotEqual(int tableId, double value, boolean summaryOnly, struct wiggle *wiggle) { boolean ret = FALSE; if (summaryOnly) ret = ((wiggle->lowerLimit > wigDataConstraint[tableId][0]) || (wiggle->lowerLimit+wiggle->dataRange < wigDataConstraint[tableId][0])); else ret = (value != wigDataConstraint[tableId][0]); return ret; } static boolean wigGreaterEqual(int tableId, double value, boolean summaryOnly, struct wiggle *wiggle) { boolean ret = FALSE; if (summaryOnly) ret=(wiggle->lowerLimit+wiggle->dataRange >= wigDataConstraint[tableId][0]); else ret = (value >= wigDataConstraint[tableId][0]); return ret; } static boolean wigGreaterThan(int tableId, double value, boolean summaryOnly, struct wiggle *wiggle) { boolean ret = FALSE; if (summaryOnly) ret = (wiggle->lowerLimit+wiggle->dataRange > wigDataConstraint[tableId][0]); else ret = (value > wigDataConstraint[tableId][0]); return ret; } static void showConstraints(char *constraints, int tableId, boolean htmlOutput) { boolean foundSome = FALSE; if (htmlOutput) printf("
Constraints in effect: "); if ((constraints != NULL) && (constraints[0] != 0)) { foundSome = TRUE; if (htmlOutput) printf("%s\n", constraints); else printf("#\tSQL query constraint: %s\n", constraints); } if (wigConstraint[tableId]) { if (htmlOutput) if (foundSome) printf(" AND "); foundSome = TRUE; if (sameWord(wigConstraint[tableId],"in range")) { if (htmlOutput) printf("(data value %s [%g , %g])", wigConstraint[tableId], wigDataConstraint[tableId][0], wigDataConstraint[tableId][1]); else printf("#\tdata value constraint range: %s [%g , %g]\n", wigConstraint[tableId], wigDataConstraint[tableId][0], wigDataConstraint[tableId][1]); } else { if (htmlOutput) printf("(data value %s %g)", wigConstraint[tableId], wigDataConstraint[tableId][0]); else printf("#\tdata value constraint: %s %g\n", wigConstraint[tableId], wigDataConstraint[tableId][0]); } } if (htmlOutput) { if (foundSome) printf("
\n"); else printf("NONE\n"); } } void wiggleConstraints(char *cmp, char *pat, int tableIndex) { wigConstraint[tableIndex] = cmp; wiggleCompare[tableIndex] = NULL; if (strlen(pat)>0) { if (sameWord(cmp,"in range")) { char *rangeValues[2]; char *clone = cloneString(pat); int records = 0; char *comma = strchr(pat,','); if (comma == (char *)NULL) records = chopByWhite(clone,rangeValues,2); else records = chopByChar(clone,',',rangeValues,2); if (records == 2) { trimSpaces(rangeValues[0]); trimSpaces(rangeValues[1]); wigDataConstraint[tableIndex][0] = sqlDouble(rangeValues[0]); wigDataConstraint[tableIndex][1] = sqlDouble(rangeValues[1]); if (wigDataConstraint[tableIndex][0] > wigDataConstraint[tableIndex][1]) { double d = wigDataConstraint[tableIndex][1]; wigDataConstraint[tableIndex][1] = wigDataConstraint[tableIndex][0]; wigDataConstraint[tableIndex][0] = d; } wiggleCompare[tableIndex] = wigInRange; } freeMem(clone); if (wigDataConstraint[tableIndex][1] == wigDataConstraint[tableIndex][0]) errAbort("For \"in range\" constraint, you must give two numbers separated by whitespace or comma."); } else { wigDataConstraint[tableIndex][0] = sqlDouble(pat); if (sameWord(cmp,"<")) wiggleCompare[tableIndex] = wigLessThan; else if (sameWord(cmp,"<=")) wiggleCompare[tableIndex] = wigLessEqual; else if (sameWord(cmp,"=")) wiggleCompare[tableIndex] = wigEqual; else if (sameWord(cmp,"!=")) wiggleCompare[tableIndex] = wigNotEqual; else if (sameWord(cmp,">=")) wiggleCompare[tableIndex]=wigGreaterEqual; else if (sameWord(cmp,">")) wiggleCompare[tableIndex] = wigGreaterThan; } } } static void wigPrintRow(struct wiggleStats *wigStats) { printf("" "\n" - "
");
+ "
|