同步操作将从 samwaf/SamWaf 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package binarydistimport ("bytes""compress/bzip2""encoding/binary""errors""io""io/ioutil")var ErrCorrupt = errors.New("corrupt patch")// Patch applies patch to old, according to the bspatch algorithm,// and writes the result to new.func Patch(old io.Reader, new io.Writer, patch io.Reader) error {var hdr headererr := binary.Read(patch, signMagLittleEndian{}, &hdr)if err != nil {return err}if hdr.Magic != magic {return ErrCorrupt}if hdr.CtrlLen < 0 || hdr.DiffLen < 0 || hdr.NewSize < 0 {return ErrCorrupt}ctrlbuf := make([]byte, hdr.CtrlLen)_, err = io.ReadFull(patch, ctrlbuf)if err != nil {return err}cpfbz2 := bzip2.NewReader(bytes.NewReader(ctrlbuf))diffbuf := make([]byte, hdr.DiffLen)_, err = io.ReadFull(patch, diffbuf)if err != nil {return err}dpfbz2 := bzip2.NewReader(bytes.NewReader(diffbuf))// The entire rest of the file is the extra block.epfbz2 := bzip2.NewReader(patch)obuf, err := ioutil.ReadAll(old)if err != nil {return err}nbuf := make([]byte, hdr.NewSize)var oldpos, newpos int64for newpos < hdr.NewSize {var ctrl struct{ Add, Copy, Seek int64 }err = binary.Read(cpfbz2, signMagLittleEndian{}, &ctrl)if err != nil {return err}// Sanity-checkif newpos+ctrl.Add > hdr.NewSize {return ErrCorrupt}// Read diff string_, err = io.ReadFull(dpfbz2, nbuf[newpos:newpos+ctrl.Add])if err != nil {return ErrCorrupt}// Add old data to diff stringfor i := int64(0); i < ctrl.Add; i++ {if oldpos+i >= 0 && oldpos+i < int64(len(obuf)) {nbuf[newpos+i] += obuf[oldpos+i]}}// Adjust pointersnewpos += ctrl.Addoldpos += ctrl.Add// Sanity-checkif newpos+ctrl.Copy > hdr.NewSize {return ErrCorrupt}// Read extra string_, err = io.ReadFull(epfbz2, nbuf[newpos:newpos+ctrl.Copy])if err != nil {return ErrCorrupt}// Adjust pointersnewpos += ctrl.Copyoldpos += ctrl.Seek}// Write the new filefor len(nbuf) > 0 {n, err := new.Write(nbuf)if err != nil {return err}nbuf = nbuf[n:]}return nil}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。