4c1592ae46d1272a7d1ed5785e9df07e6dbb59e2 galt Tue Jul 10 14:41:42 2012 -0700 fixing subtle problem with tabs and empty strings in b2bb input parsing diff --git src/utils/bedToBigBed/bedToBigBed.c src/utils/bedToBigBed/bedToBigBed.c index a894868..dc68d8f 100644 --- src/utils/bedToBigBed/bedToBigBed.c +++ src/utils/bedToBigBed/bedToBigBed.c @@ -1,31 +1,31 @@ /* bedToBigBed - Convert bed to bigBed.. */ #include "common.h" #include "linefile.h" #include "hash.h" #include "options.h" #include "dystring.h" #include "obscure.h" #include "asParse.h" #include "basicBed.h" #include "sig.h" #include "rangeTree.h" #include "zlibFace.h" #include "sqlNum.h" #include "bigBed.h" -char *version = "2.1"; +char *version = "2.2"; int blockSize = 256; int itemsPerSlot = 512; int bedN = 0; /* number of standard bed fields */ int bedP = 0; /* number of bed plus fields */ char *as = NULL; static boolean doCompress = FALSE; static boolean tabSep = FALSE; void usage() /* Explain usage and exit. */ { errAbort( "bedToBigBed v. %s - Convert bed file to bigBed. (BigBed version: %d)\n" "usage:\n" @@ -96,31 +96,31 @@ char *chrom = NULL; struct bed *bed; AllocVar(bed); for (;;) { /* Get next line of input if any. */ if (lineFileNextReal(lf, &line)) { /* First time through figure out the field count and if not set, the bedN. */ if (fieldCount == 0) { if (as == NULL) { if (tabSep) - fieldCount = chopString(line, "\t", NULL, 0); + fieldCount = chopByChar(line, '\t', NULL, 256); // Do not use chopString, see GOTCHA else fieldCount = chopByWhite(line, NULL, 0); if (bedN == 0) bedN = fieldCount; if (bedN > 15) { bedN = 15; bedP = fieldCount - bedN; } char *asText = bedAsDef(bedN, fieldCount); as = asParseText(asText); allocedAs = TRUE; freeMem(asText); } else