src/docrecord.py | 34 ++++++++++++++++++++++++++++++++++ src/docstream.py | 8 +++++++- 2 files changed, 41 insertions(+), 1 deletion(-)
New commits: commit 2436df923e2329ee633d6f084d369ff8a89735b4 Author: Miklos Vajna <vmik...@suse.cz> Date: Tue Nov 20 17:02:15 2012 +0100 start dumping ATRDPre10 diff --git a/src/docrecord.py b/src/docrecord.py index e79a5c9..a3c6fe6 100755 --- a/src/docrecord.py +++ b/src/docrecord.py @@ -318,6 +318,16 @@ class PnFkpChpx(DOCDirStream): chpxFkp.dump() print '</%s>' % self.name +class ATRDPre10(DOCDirStream): + """The ATRDPre10 structure contains information about a comment in the document.""" + def __init__(self, aPlcfandRef, offset): + DOCDirStream.__init__(self, aPlcfandRef.bytes) + self.pos = offset + + def dump(self): + print '<aATRDPre10 type="ATRDPre10" offset="%d" size="30 bytes">' % self.pos + print '</aATRDPre10>' + class PnFkpPapx(DOCDirStream): """The PnFkpPapx structure specifies the offset of a PapxFkp in the WordDocument Stream.""" def __init__(self, bytes, mainStream, offset, size, name): @@ -398,6 +408,9 @@ class PlcfandRef(DOCDirStream, PLC): print '<transformed value="%s"/>' % FcCompressed.getFCTransformedValue(self.mainStream.bytes, start, start + 1) pos += 4 + # aATRDPre10 + aATRDPre10 = ATRDPre10(self, self.getOffset(self.pos, i)) + aATRDPre10.dump() print '</aCP>' print '</plcfandRef>' commit af141a7dbfd2e312ff208b65b219e9ac86f081db Author: Miklos Vajna <vmik...@suse.cz> Date: Tue Nov 20 16:43:02 2012 +0100 dump PlcfandRef diff --git a/src/docrecord.py b/src/docrecord.py index 6c51a48..e79a5c9 100755 --- a/src/docrecord.py +++ b/src/docrecord.py @@ -380,6 +380,27 @@ class PlcfandTxt(DOCDirStream, PLC): print '</aCP>' print '</plcfandTxt>' +class PlcfandRef(DOCDirStream, PLC): + """The PlcfandRef structure is a PLC whose data elements are ATRDPre10 structures.""" + def __init__(self, mainStream, offset, size): + DOCDirStream.__init__(self, mainStream.doc.getDirectoryStreamByName("1Table").bytes, mainStream=mainStream) + PLC.__init__(self, size, 30) + self.pos = offset + self.size = size + + def dump(self): + print '<plcfandRef type="PlcfandRef" offset="%d" size="%d bytes">' % (self.pos, self.size) + offset = self.mainStream.fcMin + pos = self.pos + for i in range(self.getElements()): + start = offset + self.getuInt32(pos = pos) + print '<aCP index="%d" commentEndOffset="%d">' % (i, start) + print '<transformed value="%s"/>' % FcCompressed.getFCTransformedValue(self.mainStream.bytes, start, start + 1) + pos += 4 + + print '</aCP>' + print '</plcfandRef>' + class PlcBtePapx(DOCDirStream, PLC): """The PlcBtePapx structure is a PLC that specifies paragraph, table row, or table cell properties.""" def __init__(self, bytes, mainStream, offset, size): diff --git a/src/docstream.py b/src/docstream.py index b98a0fc..928bb29 100755 --- a/src/docstream.py +++ b/src/docstream.py @@ -197,7 +197,7 @@ class WordDocumentStream(DOCDirStream): ["fcPlcffndTxt"], ["lcbPlcffndTxt"], ["fcPlcfandRef"], - ["lcbPlcfandRef"], + ["lcbPlcfandRef", self.handleLcbPlcfandRef], ["fcPlcfandTxt"], ["lcbPlcfandTxt", self.handleLcbPlcfandTxt], ["fcPlcfSed"], @@ -418,6 +418,12 @@ class WordDocumentStream(DOCDirStream): plcfandTxt = docrecord.PlcfandTxt(self, offset, size) plcfandTxt.dump() + def handleLcbPlcfandRef(self): + offset = self.fcPlcfandRef + size = self.lcbPlcfandRef + plcfandRef = docrecord.PlcfandRef(self, offset, size) + plcfandRef.dump() + def dumpFibRgFcLcb97(self, name): print '<%s type="FibRgFcLcb97" size="744 bytes">' % name self.__dumpFibRgFcLcb97() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits