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

Reply via email to