4898058b5cc05ab0d70d67b6f11402ff71807465
angie
  Wed Sep 11 14:37:18 2013 -0700
Adding bed4{New,Free,FreeList}.
diff --git src/lib/basicBed.c src/lib/basicBed.c
index 2cbb985..966af38 100644
--- src/lib/basicBed.c
+++ src/lib/basicBed.c
@@ -1698,15 +1698,52 @@
     bed3Free(&el);
     }
 *pList = NULL;
 }
 
 long long bed3TotalSize(struct bed3 *bedList)
 /* Return sum of chromEnd-chromStart. */
 {
 long long sum = 0;
 struct bed3 *bed;
 for (bed = bedList; bed != NULL; bed = bed->next)
     sum += bed->chromEnd - bed->chromStart;
 return sum;
 }
 
+struct bed4 *bed4New(char *chrom, int start, int end, char *name)
+/* Make new bed4. */
+{
+struct bed4 *bed;
+AllocVar(bed);
+bed->chrom = cloneString(chrom);
+bed->chromStart = start;
+bed->chromEnd = end;
+bed->name = cloneString(name);
+return bed;
+}
+
+void bed4Free(struct bed4 **pBed)
+/* Free up bed4 */
+{
+struct bed4 *bed = *pBed;
+if (bed != NULL)
+    {
+    freeMem(bed->chrom);
+    freeMem(bed->name);
+    freez(pBed);
+    }
+}
+
+void bed4FreeList(struct bed4 **pList)
+/* Free a list of dynamically allocated bed4's */
+{
+struct bed4 *el, *next;
+
+for (el = *pList; el != NULL; el = next)
+    {
+    next = el->next;
+    bed4Free(&el);
+    }
+*pList = NULL;
+}
+