msodumper/docrecord.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)
New commits: commit dedeea77ee779636b8a396649c1dd9f9a78c8618 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Fri Dec 4 17:12:02 2015 +0100 docrecord: dump the whole propBag array in SmartTagData diff --git a/msodumper/docrecord.py b/msodumper/docrecord.py index bf315e1..9108dca 100644 --- a/msodumper/docrecord.py +++ b/msodumper/docrecord.py @@ -4231,13 +4231,14 @@ class Property(DOCDirStream): class PropertyBag(DOCDirStream): """Specified by [MS-OSHARED] 2.3.4.3, specifies the smart tag data.""" - def __init__(self, parent): + def __init__(self, parent, index): DOCDirStream.__init__(self, parent.bytes) self.parent = parent self.pos = parent.pos + self.index = index def dump(self): - print '<propBag type="PropertyBag" offset="%s">' % self.pos + print '<propBag type="PropertyBag" offset="%s" index="%s">' % (self.pos, self.index) self.printAndSet("id", self.readuInt16()) self.printAndSet("cProp", self.readuInt16()) self.printAndSet("cbUnknown", self.readuInt16()) @@ -4256,12 +4257,15 @@ class SmartTagData(DOCDirStream): self.size = mainStream.lcbFactoidData def dump(self): + posOrig = self.pos print '<smartTagData type="SmartTagData" offset="%d" size="%d bytes">' % (self.pos, self.size) self.propBagStore = PropertyBagStore(self) self.propBagStore.dump() - # TODO this is an array in fact - self.propBag = PropertyBag(self) - self.propBag.dump() + i = 0 + while self.pos < posOrig + self.size: + self.propBag = PropertyBag(self, i) + self.propBag.dump() + i += 1 print '</smartTagData>' _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits