src/docdirstream.py | 6 +++++- src/docrecord.py | 23 +++++++++++++---------- 2 files changed, 18 insertions(+), 11 deletions(-)
New commits: commit 6aa111f33ba2bf6872bc1cd339d43b7d9a22f924 Author: Miklos Vajna <vmik...@suse.cz> Date: Thu May 23 18:19:51 2013 +0200 SttbfAssoc, SttbSavedBy: tolare if table was cleared, but FIB was not updated fdo40686-1.doc requires this. diff --git a/src/docrecord.py b/src/docrecord.py index 67f9035..8d90b51 100644 --- a/src/docrecord.py +++ b/src/docrecord.py @@ -2062,7 +2062,9 @@ class SttbfAssoc(DOCDirStream): print '<string value="%s"/>' % globals.encodeName(self.bytes[self.pos:self.pos+2*cchData].decode('utf-16'), lowOnly = True) self.pos += 2*cchData print '</cchData>' - assert self.pos == self.mainStream.fcSttbfAssoc + self.size + # Probably this was cleared manually. + if self.cData != 0: + assert self.pos == self.mainStream.fcSttbfAssoc + self.size print '</sttbfAssoc>' class SttbfRMark(DOCDirStream): @@ -3049,7 +3051,9 @@ class SttbSavedBy(DOCDirStream): print '<string value="%s"/>' % globals.encodeName(self.bytes[self.pos:self.pos+2*cchData].decode('utf-16'), lowOnly = True) self.pos += 2*cchData print '</cchData>' - assert self.pos == self.mainStream.fcSttbSavedBy + self.size + # Probably this was cleared manually. + if self.cData != 0: + assert self.pos == self.mainStream.fcSttbSavedBy + self.size print '</sttbSavedBy>' class SttbfBkmk(DOCDirStream): commit ef4b0109c17f88cd7ec66704b2dfd0423ddebf21 Author: Miklos Vajna <vmik...@suse.cz> Date: Thu May 23 17:57:10 2013 +0200 DopTypography: dump rgxchFPunct / rgxchLPunct diff --git a/src/docdirstream.py b/src/docdirstream.py index 18c7453..4e29943 100644 --- a/src/docdirstream.py +++ b/src/docdirstream.py @@ -114,9 +114,12 @@ class DOCDirStream: self.pos += 8 return ret - def getString(self): + def getString(self, limit = None): bytes = [] + count = 0 while True: + if (not limit is None) and count == limit: + break i = self.readuInt8() j = self.readuInt8() if i != 0 or j != 0: @@ -124,6 +127,7 @@ class DOCDirStream: bytes.append(j) else: break + count += 1 return globals.getUTF8FromUTF16("".join(map(lambda x: chr(x), bytes))) def getBit(self, byte, bitNumber): diff --git a/src/docrecord.py b/src/docrecord.py index a14f81e..67f9035 100644 --- a/src/docrecord.py +++ b/src/docrecord.py @@ -1517,14 +1517,13 @@ class DopTypography(DOCDirStream): self.printAndSet("cchFollowingPunct", self.readInt16()) self.printAndSet("cchLeadingPunct", self.readInt16()) - if self.cchFollowingPunct != 0: - print '<todo what="DopTypography::dump(): cchFollowingPunct != 0 not handled"/>' - else: - self.pos += 202 - if self.cchLeadingPunct != 0: - print '<todo what="DopTypography::dump(): cchLeadingPunct != 0 not handled"/>' - else: - self.pos += 102 + + self.printAndSet("rgxchFPunct", self.getString(self.cchFollowingPunct), hexdump = False) + self.pos += (202 - 2 * self.cchFollowingPunct) + + self.printAndSet("rgxchLPunct", self.getString(self.cchLeadingPunct), hexdump = False) + self.pos += (102 - 2 * self.cchLeadingPunct) + print '</dopTypography>' assert self.pos == self.dop.pos + DopTypography.size self.dop.pos = self.pos _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits