[Libreoffice-commits] mso-dumper.git: 3 commits - src/docrecord.py src/docstream.py
Miklos Vajna
vmiklos at kemper.freedesktop.org
Tue May 21 09:41:19 PDT 2013
src/docrecord.py | 24 ++++++++++++++++++++++--
src/docstream.py | 4 ++--
2 files changed, 24 insertions(+), 4 deletions(-)
New commits:
commit ac3bf1325ffe6685c93d2782c7c990b56628cc71
Author: Miklos Vajna <vmiklos at suse.cz>
Date: Tue May 21 17:29:23 2013 +0200
doc: fix retrieveCP in case Clx has multiple elements
diff --git a/src/docstream.py b/src/docstream.py
index 5c024fe..ee196ce 100644
--- a/src/docstream.py
+++ b/src/docstream.py
@@ -941,9 +941,9 @@ class WordDocumentStream(DOCDirStream):
aPcd = plcPcd.aPcd[index]
fcCompressed = aPcd.fc
if fcCompressed.fCompressed == 1:
- return globals.encodeName(self.bytes[(fcCompressed.fc/2) + (cp - plcPcd.aCp[i])])
+ return globals.encodeName(self.bytes[(fcCompressed.fc/2) + (cp - plcPcd.aCp[index])])
else:
- pos = fcCompressed.fc + 2 * (cp - plcPcd.aCp[i])
+ pos = fcCompressed.fc + 2 * (cp - plcPcd.aCp[index])
return globals.encodeName(self.bytes[pos:pos+2].decode('utf-16'), lowOnly = True)
def retrieveCPs(self, start, end):
commit 46d904d97744568a1c0e7ccd7ca8497aaad09a58
Author: Miklos Vajna <vmiklos at suse.cz>
Date: Tue May 21 15:57:34 2013 +0200
SttbfAssoc: handle if we contain some unexpected additional elements
diff --git a/src/docrecord.py b/src/docrecord.py
index 17538b4..570269d 100644
--- a/src/docrecord.py
+++ b/src/docrecord.py
@@ -2055,7 +2055,11 @@ class SttbfAssoc(DOCDirStream):
self.printAndSet("cbExtra", self.readuInt16())
for i in range(self.cData):
cchData = self.readuInt16()
- print '<cchData index="%s" meaning="%s" offset="%d" size="%d bytes">' % (hex(i), indexMap[i], self.pos, cchData)
+ if i in indexMap.keys():
+ meaning = indexMap[i]
+ else:
+ meaning = "unknown"
+ print '<cchData index="%s" meaning="%s" offset="%d" size="%d bytes">' % (hex(i), meaning, 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>'
commit b0a534699fe70f8f4b62564887f3264374b86622
Author: Miklos Vajna <vmiklos at suse.cz>
Date: Tue May 21 15:50:40 2013 +0200
dump FTXBXSReusable
diff --git a/src/docrecord.py b/src/docrecord.py
index dac6d83..17538b4 100644
--- a/src/docrecord.py
+++ b/src/docrecord.py
@@ -2685,6 +2685,22 @@ class FTXBXNonReusable(DOCDirStream):
print '</ftxbxsunion>'
self.parent.pos = self.pos
+class FTXBXSReusable(DOCDirStream):
+ """The FTXBXSReusable structure is used within the FTXBXS structure when it describes a spare
+ structure that can be reused by the application and converted into an actual textbox."""
+ def __init__(self, parent):
+ DOCDirStream.__init__(self, parent.bytes)
+ self.parent = parent
+ self.pos = parent.pos
+
+ def dump(self):
+ print '<ftxbxsunion type="FTXBXReusable" offset="%d" size="8 bytes">' % (self.pos)
+ self.printAndSet("iNextReuse", self.readuInt32())
+ self.printAndSet("cReusable", self.readuInt32())
+ print '</ftxbxsunion>'
+ self.parent.pos = self.pos
+
+
class FTXBXS(DOCDirStream):
"""Associates ranges of text from the Textboxes Document and the Header
Textboxes Document, with shape objects."""
@@ -2698,7 +2714,7 @@ class FTXBXS(DOCDirStream):
print '<aFTXBXS type="FTXBXS" offset="%d" size="%d bytes">' % (self.pos, FTXBXS.size)
self.fReusable = self.getuInt16(pos = self.pos + 8)
if self.fReusable:
- print '<todo what="FTXBXS: handle fReusable == 1"/>'
+ FTXBXSReusable(self).dump()
else:
FTXBXNonReusable(self).dump()
self.printAndSet("fReusable", self.readuInt16())
More information about the Libreoffice-commits
mailing list