src/docrecord.py | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 4 deletions(-)
New commits: commit 41c83e2258ecf18d22559c35116fcc1470bf08d1 Author: Miklos Vajna <[email protected]> Date: Wed Nov 28 19:19:30 2012 +0100 dump GRFSTD diff --git a/src/docrecord.py b/src/docrecord.py index 015a20c..adf0de5 100755 --- a/src/docrecord.py +++ b/src/docrecord.py @@ -630,6 +630,35 @@ class DTTM(DOCDirStream): print '</%s>' % self.name self.parent.pos = self.pos +class GRFSTD(DOCDirStream): + """The GRFSTD structure specifies the general properties of a style.""" + def __init__(self, parent): + DOCDirStream.__init__(self, parent.bytes) + self.parent = parent + self.pos = parent.pos + + def dump(self): + print '<grfstd type="GRFSTD" offset="%d" size="2 bytes">' % self.pos + buf = self.readuInt8() + self.printAndSet("fAutoRedef", self.getBit(buf, 0)) + self.printAndSet("fHidden", self.getBit(buf, 1)) + self.printAndSet("f97LidsSet", self.getBit(buf, 2)) + self.printAndSet("fCopyLang", self.getBit(buf, 3)) + self.printAndSet("fPersonalCompose", self.getBit(buf, 4)) + self.printAndSet("fPersonalReply", self.getBit(buf, 5)) + self.printAndSet("fPersonal", self.getBit(buf, 6)) + self.printAndSet("fNoHtmlExport", self.getBit(buf, 7)) + + buf = self.readuInt8() + self.printAndSet("fSemiHidden", self.getBit(buf, 0)) + self.printAndSet("fLocked", self.getBit(buf, 1)) + self.printAndSet("fInternalUse", self.getBit(buf, 2)) + self.printAndSet("fUnhideWhenUsed", self.getBit(buf, 3)) + self.printAndSet("fQFormat", self.getBit(buf, 4)) + self.printAndSet("fReserved", (buf & 0xe0) >> 5) # 6..8th bits + print '</grfstd>' + self.parent.pos = self.pos + class DopBase(DOCDirStream): """The DopBase structure contains document and compatibility settings.""" def __init__(self, dop): @@ -1484,7 +1513,7 @@ class StdfBase(DOCDirStream): self.printAndSet("cupx", buf & 0x000f) # 1..4th bits self.printAndSet("istdNext", (buf & 0xfff0) >> 4) # 5..16th bits self.printAndSet("bchUpe", self.readuInt16(), hexdump = False) - self.printAndSet("grfstd", self.readuInt16()) # TODO dedicated GRFSTD class + GRFSTD(self).dump() print '</stdfBase>' class StdfPost2000(DOCDirStream): commit 89f2fdb4fcfa4e943d9e6987dd08fc84f273b4e6 Author: Miklos Vajna <[email protected]> Date: Wed Nov 28 19:11:06 2012 +0100 dump DTTM diff --git a/src/docrecord.py b/src/docrecord.py index 824738f..015a20c 100755 --- a/src/docrecord.py +++ b/src/docrecord.py @@ -609,6 +609,27 @@ class Copts60(DOCDirStream): self.printAndSet("fDntBlnSbDbWid", self.getBit(buf, 7)) print '</copts60>' +class DTTM(DOCDirStream): + """The DTTM structure specifies date and time.""" + def __init__(self, parent, name): + DOCDirStream.__init__(self, parent.bytes) + self.parent = parent + self.pos = parent.pos + self.name = name + + def dump(self): + buf = self.readuInt32() + print '<%s type="DTTM" offset="%d" size="4 bytes">' % (self.name, self.pos) + self.printAndSet("mint", buf & 0x0000003f) # 1..6th bits + self.printAndSet("hr", (buf & 0x000007c0) >> 6) # 7..11th bits + self.printAndSet("dom", (buf & 0x0000f800) >> 11) # 12..16th bits + self.printAndSet("mon", (buf & 0x000f0000) >> 16) # 17..20th bits + self.printAndSet("yr", (buf & 0x1ff00000) >> 20) # 21..29th bits + self.printAndSet("wdy", (buf & 0xe0000000) >> 29) # 30..32th bits + print '<transformed value="%s-%s-%s %s:%s"/>' % (1900+self.yr, self.mon, self.dom, self.hr, self.mint) + print '</%s>' % self.name + self.parent.pos = self.pos + class DopBase(DOCDirStream): """The DopBase structure contains document and compatibility settings.""" def __init__(self, dop): @@ -681,9 +702,9 @@ class DopBase(DOCDirStream): self.printAndSet("dxaHotZ", self.readuInt16()) self.printAndSet("cConsecHypLim", self.readuInt16()) self.printAndSet("wSpare2", self.readuInt16()) - self.printAndSet("dttmCreated", self.readuInt32()) # TODO extract DTTM here and below - self.printAndSet("dttmRevised", self.readuInt32()) - self.printAndSet("dttmLastPrint", self.readuInt32()) + DTTM(self, "dttmCreated").dump() + DTTM(self, "dttmRevised").dump() + DTTM(self, "dttmLastprint").dump() self.printAndSet("nRevision", self.readInt16()) self.printAndSet("tmEdited", self.readInt32()) self.printAndSet("cWords", self.readInt32()) _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
