src/docrecord.py | 22 ++++++++++++++++++++++ src/docstream.py | 5 ++++- 2 files changed, 26 insertions(+), 1 deletion(-)
New commits: commit 8578f5e40cc8ac46e7aca4acb71f0628e2d9f41a Author: Miklos Vajna <[email protected]> Date: Mon Dec 3 11:31:47 2012 +0100 dump SttbfRMark diff --git a/src/docrecord.py b/src/docrecord.py index ebbdfdf..5e2b87a 100644 --- a/src/docrecord.py +++ b/src/docrecord.py @@ -1542,6 +1542,28 @@ class SttbfAssoc(DOCDirStream): assert self.pos == self.mainStream.fcSttbfAssoc + self.size print '</sttbfAssoc>' +class SttbfRMark(DOCDirStream): + """The SttbfRMark structure is an STTB structure where the strings specify the names of the authors of the revision marks, comments, and e-mail messages in the document.""" + def __init__(self, mainStream): + DOCDirStream.__init__(self, mainStream.doc.getDirectoryStreamByName("1Table").bytes) + self.pos = mainStream.fcSttbfRMark + self.size = mainStream.lcbSttbfRMark + self.mainStream = mainStream + + def dump(self): + print '<sttbfRMark type="SttbfRMark" offset="%d" size="%d bytes">' % (self.pos, self.size) + self.printAndSet("fExtend", self.readuInt16()) + self.printAndSet("cData", self.readuInt16()) + self.printAndSet("cbExtra", self.readuInt16()) + for i in range(self.cData): + cchData = self.readuInt16() + print '<cchData index="%s" offset="%d" size="%d bytes">' % (i, self.pos, cchData) + 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.fcSttbfRMark + self.size + print '</sttbfRMark>' + class ATNBE(DOCDirStream): """The ATNBE structure contains information about an annotation bookmark in the document.""" size = 10 # in bytes, see 2.9.4 diff --git a/src/docstream.py b/src/docstream.py index b410e9b..0a99009 100644 --- a/src/docstream.py +++ b/src/docstream.py @@ -306,7 +306,7 @@ class WordDocumentStream(DOCDirStream): ["fcDggInfo"], ["lcbDggInfo"], ["fcSttbfRMark"], - ["lcbSttbfRMark"], + ["lcbSttbfRMark", self.handleLcbSttbfRMark], ["fcSttbfCaption"], ["lcbSttbfCaption"], ["fcSttbfAutoCaption"], @@ -486,6 +486,9 @@ class WordDocumentStream(DOCDirStream): def handleLcbSttbfAssoc(self): docrecord.SttbfAssoc(self).dump() + def handleLcbSttbfRMark(self): + docrecord.SttbfRMark(self).dump() + def dumpFibRgFcLcb97(self, name): print '<%s type="FibRgFcLcb97" size="744 bytes">' % name self.__dumpFibRgFcLcb97() _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
