1// Package binarydist implements binary diff and patch as described on 2// http://www.daemonology.net/bsdiff/. It reads and writes files 3// compatible with the tools there. 4package binarydist 5 6var magic = [8]byte{'B', 'S', 'D', 'I', 'F', 'F', '4', '0'} 7 8// File format: 9// 0 8 "BSDIFF40" 10// 8 8 X 11// 16 8 Y 12// 24 8 sizeof(newfile) 13// 32 X bzip2(control block) 14// 32+X Y bzip2(diff block) 15// 32+X+Y ??? bzip2(extra block) 16// with control block a set of triples (x,y,z) meaning "add x bytes 17// from oldfile to x bytes from the diff block; copy y bytes from the 18// extra block; seek forwards in oldfile by z bytes". 19type header struct { 20 Magic [8]byte 21 CtrlLen int64 22 DiffLen int64 23 NewSize int64 24} 25