12d0f12bd304787c52cab0780e367d36b020f84e
kent
  Tue Feb 26 12:11:18 2013 -0800
Adding name index to bigBed files.  The write side I _think_ is working.  Still developing read side.
diff --git src/lib/bbiRead.c src/lib/bbiRead.c
index 9818a36..cebaa7d 100644
--- src/lib/bbiRead.c
+++ src/lib/bbiRead.c
@@ -102,33 +102,34 @@
     }
 bbi->typeSig = sig;
 bbi->isSwapped = isSwapped;
 
 /* Read rest of defined bits of header, byte swapping as needed. */
 bbi->version = udcReadBits16(udc, isSwapped);
 bbi->zoomLevels = udcReadBits16(udc, isSwapped);
 bbi->chromTreeOffset = udcReadBits64(udc, isSwapped);
 bbi->unzoomedDataOffset = udcReadBits64(udc, isSwapped);
 bbi->unzoomedIndexOffset = udcReadBits64(udc, isSwapped);
 bbi->fieldCount = udcReadBits16(udc, isSwapped);
 bbi->definedFieldCount = udcReadBits16(udc, isSwapped);
 bbi->asOffset = udcReadBits64(udc, isSwapped);
 bbi->totalSummaryOffset = udcReadBits64(udc, isSwapped);
 bbi->uncompressBufSize = udcReadBits32(udc, isSwapped);
+bbi->nameIndexOffset = udcReadBits64(udc, isSwapped);
 
 /* Skip over reserved area. */
-udcSeek(udc, 64);
+udcSeek(udc, 64);	// Absolute seek over fixed size 64 bit header
 
 /* Read zoom headers. */
 int i;
 struct bbiZoomLevel *level, *levelList = NULL;
 for (i=0; i<bbi->zoomLevels; ++i)
     {
     AllocVar(level);
     level->reductionLevel = udcReadBits32(udc, isSwapped);
     level->reserved = udcReadBits32(udc, isSwapped);
     level->dataOffset = udcReadBits64(udc, isSwapped);
     level->indexOffset = udcReadBits64(udc, isSwapped);
     slAddHead(&levelList, level);
     }
 slReverse(&levelList);
 bbi->levelList = levelList;