Fixed hexbin handling
This commit is contained in:
parent
8150760e6e
commit
685e16d7d6
|
@ -198,6 +198,7 @@ class BinHex:
|
||||||
self.ofp.write(data)
|
self.ofp.write(data)
|
||||||
|
|
||||||
def _writecrc(self):
|
def _writecrc(self):
|
||||||
|
## self.crc = binascii.crc_hqx('\0\0', self.crc) # XXXX Should this be here??
|
||||||
self.ofp.write(struct.pack('h', self.crc))
|
self.ofp.write(struct.pack('h', self.crc))
|
||||||
self.crc = 0
|
self.crc = 0
|
||||||
|
|
||||||
|
@ -257,9 +258,10 @@ class _Hqxdecoderengine:
|
||||||
self.ifp = ifp
|
self.ifp = ifp
|
||||||
self.eof = 0
|
self.eof = 0
|
||||||
|
|
||||||
def read(self, wtd):
|
def read(self, totalwtd):
|
||||||
"""Read at least wtd bytes (or until EOF)"""
|
"""Read at least wtd bytes (or until EOF)"""
|
||||||
decdata = ''
|
decdata = ''
|
||||||
|
wtd = totalwtd
|
||||||
#
|
#
|
||||||
# The loop here is convoluted, since we don't really now how much
|
# The loop here is convoluted, since we don't really now how much
|
||||||
# to decode: there may be newlines in the incoming data.
|
# to decode: there may be newlines in the incoming data.
|
||||||
|
@ -283,7 +285,7 @@ class _Hqxdecoderengine:
|
||||||
raise Error, 'Premature EOF on binhex file'
|
raise Error, 'Premature EOF on binhex file'
|
||||||
data = data + newdata
|
data = data + newdata
|
||||||
decdata = decdata + decdatacur
|
decdata = decdata + decdatacur
|
||||||
wtd = wtd - len(decdata)
|
wtd = totalwtd - len(decdata)
|
||||||
if not decdata and not self.eof:
|
if not decdata and not self.eof:
|
||||||
raise Error, 'Premature EOF on binhex file'
|
raise Error, 'Premature EOF on binhex file'
|
||||||
return decdata
|
return decdata
|
||||||
|
@ -367,11 +369,12 @@ class HexBin:
|
||||||
|
|
||||||
def _checkcrc(self):
|
def _checkcrc(self):
|
||||||
filecrc = struct.unpack('h', self.ifp.read(2))[0] & 0xffff
|
filecrc = struct.unpack('h', self.ifp.read(2))[0] & 0xffff
|
||||||
|
## self.crc = binascii.crc_hqx('\0\0', self.crc) # XXXX Is this needed??
|
||||||
self.crc = self.crc & 0xffff
|
self.crc = self.crc & 0xffff
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
print 'DBG CRC %x %x'%(self.crc, filecrc)
|
print 'DBG CRC %x %x'%(self.crc, filecrc)
|
||||||
#if filecrc != self.crc:
|
if filecrc != self.crc:
|
||||||
# raise Error, 'CRC error, computed %x, read %x'%(self.crc, filecrc)
|
raise Error, 'CRC error, computed %x, read %x'%(self.crc, filecrc)
|
||||||
self.crc = 0
|
self.crc = 0
|
||||||
|
|
||||||
def _readheader(self):
|
def _readheader(self):
|
||||||
|
|
Loading…
Reference in New Issue