[Libreoffice-commits] .: 3 commits - src/docrecord.py

Miklos Vajna vmiklos at kemper.freedesktop.org
Mon Nov 12 08:31:04 PST 2012


 src/docrecord.py |  149 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 143 insertions(+), 6 deletions(-)

New commits:
commit d574b3276ffe56294a20bacc4611fcc66de24e49
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Mon Nov 12 17:28:38 2012 +0100

    dump StkParaLpUpxGrLpUpxRM

diff --git a/src/docrecord.py b/src/docrecord.py
index 24f6df6..abaed0e 100755
--- a/src/docrecord.py
+++ b/src/docrecord.py
@@ -799,6 +799,19 @@ class LPUpxChpx(DOCDirStream):
         self.pos = uPXPadding.pos
         print '</lPUpxChpx>'
 
+class StkParaLpUpxGrLpUpxRM(DOCDirStream):
+    """The StkParaLPUpxGrLPUpxRM structure specifies revision-marking information and formatting for paragraph styles."""
+    def __init__(self, stkParaGRLPUPX):
+        DOCDirStream.__init__(self, stkParaGRLPUPX.bytes)
+        self.pos = stkParaGRLPUPX.pos
+
+    def dump(self):
+        print '<stkParaLpUpxGrLpUpxRM type="StkParaLpUpxGrLpUpxRM" offset="%d">' % self.pos
+        self.printAndSet("cbStkParaUpxGrLpUpxRM", self.getuInt16())
+        if self.cbStkParaUpxGrLpUpxRM != 0:
+            print '<todo what="StkParaLpUpxGrLpUpxRM: cbStkParaUpxGrLpUpxRM != 0 not implemented"/>'
+        print '</stkParaLpUpxGrLpUpxRM>'
+
 class StkParaGRLPUPX(DOCDirStream):
     """The StkParaGRLPUPX structure that specifies the formatting properties for a paragraph style."""
     def __init__(self, grLPUpxSw):
@@ -814,6 +827,9 @@ class StkParaGRLPUPX(DOCDirStream):
         lpUpxChpx = LPUpxChpx(self)
         lpUpxChpx.dump()
         self.pos = lpUpxChpx.pos
+        stkParaLpUpxGrLpUpxRM = StkParaLpUpxGrLpUpxRM(self)
+        stkParaLpUpxGrLpUpxRM.dump()
+        self.pos = stkParaLpUpxGrLpUpxRM.pos
         print '</stkParaGRLPUPX>'
 
 class GrLPUpxSw(DOCDirStream):
commit 9d0cedce38dc97bb5dbd2c408f0a20babdea9401
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Mon Nov 12 16:56:51 2012 +0100

    dump LPUpxChpx

diff --git a/src/docrecord.py b/src/docrecord.py
index 771ecc0..24f6df6 100755
--- a/src/docrecord.py
+++ b/src/docrecord.py
@@ -713,6 +713,92 @@ class Xstz(DOCDirStream):
         self.pos += 2
         print '</xstz>'
 
+class UpxPapx(DOCDirStream):
+    """The UpxPapx structure specifies the paragraph formatting properties that differ from the parent"""
+    def __init__(self, lPUpxPapx):
+        DOCDirStream.__init__(self, lPUpxPapx.bytes)
+        self.lPUpxPapx = lPUpxPapx
+        self.pos = lPUpxPapx.pos
+
+    def dump(self):
+        print '<upxPapx type="UpxPapx" offset="%d">' % self.pos
+        self.printAndSet("istd", self.getuInt16())
+        self.pos += 2
+        size = self.lPUpxPapx.cbUpx - 2
+        pos = 0
+        print '<grpprlPapx offset="%d" size="%d bytes">' % (self.pos, size)
+        while size - pos > 0:
+            prl = Prl(self.bytes, self.pos + pos)
+            prl.dump()
+            pos += prl.getSize()
+        print '</grpprlPapx>'
+        print '</upxPapx>'
+
+class UpxChpx(DOCDirStream):
+    """The UpxChpx structure specifies the character formatting properties that differ from the parent"""
+    def __init__(self, lPUpxChpx):
+        DOCDirStream.__init__(self, lPUpxChpx.bytes)
+        self.lPUpxChpx = lPUpxChpx
+        self.pos = lPUpxChpx.pos
+
+    def dump(self):
+        print '<upxChpx type="UpxChpx" offset="%d">' % self.pos
+        size = self.lPUpxChpx.cbUpx
+        pos = 0
+        print '<grpprlChpx offset="%d" size="%d bytes">' % (self.pos, size)
+        while size - pos > 0:
+            prl = Prl(self.bytes, self.pos + pos)
+            prl.dump()
+            pos += prl.getSize()
+        print '</grpprlChpx>'
+        print '</upxChpx>'
+
+class UPXPadding:
+    """The UPXPadding structure specifies the padding that is used to pad the UpxPapx/Chpx/Tapx structures if any of them are an odd number of bytes in length."""
+    def __init__(self, parent):
+        self.parent = parent
+        self.pos = parent.pos
+
+    def pad(self):
+        if self.parent.cbUpx % 2 == 1:
+            self.pos += 1
+
+class LPUpxPapx(DOCDirStream):
+    """The LPUpxPapx structure specifies paragraph formatting properties."""
+    def __init__(self, stkParaGRLPUPX):
+        DOCDirStream.__init__(self, stkParaGRLPUPX.bytes)
+        self.pos = stkParaGRLPUPX.pos
+
+    def dump(self):
+        print '<lPUpxPapx type="LPUpxPapx" offset="%d">' % self.pos
+        self.printAndSet("cbUpx", self.getuInt16())
+        self.pos += 2
+        upxPapx = UpxPapx(self)
+        upxPapx.dump()
+        self.pos += self.cbUpx
+        uPXPadding = UPXPadding(self)
+        uPXPadding.pad()
+        self.pos = uPXPadding.pos
+        print '</lPUpxPapx>'
+
+class LPUpxChpx(DOCDirStream):
+    """The LPUpxChpx structure specifies character formatting properties."""
+    def __init__(self, stkParaGRLPUPX):
+        DOCDirStream.__init__(self, stkParaGRLPUPX.bytes)
+        self.pos = stkParaGRLPUPX.pos
+
+    def dump(self):
+        print '<lPUpxChpx type="LPUpxChpx" offset="%d">' % self.pos
+        self.printAndSet("cbUpx", self.getuInt16())
+        self.pos += 2
+        upxChpx = UpxChpx(self)
+        upxChpx.dump()
+        self.pos += self.cbUpx
+        uPXPadding = UPXPadding(self)
+        uPXPadding.pad()
+        self.pos = uPXPadding.pos
+        print '</lPUpxChpx>'
+
 class StkParaGRLPUPX(DOCDirStream):
     """The StkParaGRLPUPX structure that specifies the formatting properties for a paragraph style."""
     def __init__(self, grLPUpxSw):
@@ -722,7 +808,12 @@ class StkParaGRLPUPX(DOCDirStream):
 
     def dump(self):
         print '<stkParaGRLPUPX type="StkParaGRLPUPX" offset="%d">' % self.pos
-        elements = self.grLPUpxSw.std.stdf.stdfBase.cupx
+        lPUpxPapx = LPUpxPapx(self)
+        lPUpxPapx.dump()
+        self.pos = lPUpxPapx.pos
+        lpUpxChpx = LPUpxChpx(self)
+        lpUpxChpx.dump()
+        self.pos = lpUpxChpx.pos
         print '</stkParaGRLPUPX>'
 
 class GrLPUpxSw(DOCDirStream):
commit 03c83207186dd0133c737d9fe732edaae0553ecd
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Mon Nov 12 16:42:35 2012 +0100

    dump GrLPUpxSw

diff --git a/src/docrecord.py b/src/docrecord.py
index f4bb2fa..771ecc0 100755
--- a/src/docrecord.py
+++ b/src/docrecord.py
@@ -671,9 +671,9 @@ class Stdf(DOCDirStream):
 
     def dump(self):
         print '<stdf type="Stdf" offset="%d">' % self.pos
-        stdfBase = StdfBase(self.bytes, self.mainStream, self.pos)
-        stdfBase.dump()
-        self.pos += stdfBase.size
+        self.stdfBase = StdfBase(self.bytes, self.mainStream, self.pos)
+        self.stdfBase.dump()
+        self.pos += self.stdfBase.size
         stsh = self.std.lpstd.stsh # root of the stylesheet table
         cbSTDBaseInFile = stsh.lpstshi.stshi.stshif.cbSTDBaseInFile
         print '<stdfPost2000OrNone cbSTDBaseInFile="%s">' % hex(cbSTDBaseInFile)
@@ -713,6 +713,33 @@ class Xstz(DOCDirStream):
         self.pos += 2
         print '</xstz>'
 
+class StkParaGRLPUPX(DOCDirStream):
+    """The StkParaGRLPUPX structure that specifies the formatting properties for a paragraph style."""
+    def __init__(self, grLPUpxSw):
+        DOCDirStream.__init__(self, grLPUpxSw.bytes)
+        self.grLPUpxSw = grLPUpxSw
+        self.pos = grLPUpxSw.pos
+
+    def dump(self):
+        print '<stkParaGRLPUPX type="StkParaGRLPUPX" offset="%d">' % self.pos
+        elements = self.grLPUpxSw.std.stdf.stdfBase.cupx
+        print '</stkParaGRLPUPX>'
+
+class GrLPUpxSw(DOCDirStream):
+    """The GrLPUpxSw structure is an array of variable-size structures that specify the formatting of the style."""
+    def __init__(self, std):
+        DOCDirStream.__init__(self, std.bytes)
+        self.std = std
+        self.pos = std.pos
+
+    def dump(self):
+        stkMap = {
+                1: StkParaGRLPUPX
+                }
+        child = stkMap[self.std.stdf.stdfBase.stk](self)
+        child.dump()
+        self.pos = child.pos
+
 class STD(DOCDirStream):
     """The STD structure specifies a style definition."""
     def __init__(self, lpstd):
@@ -723,12 +750,15 @@ class STD(DOCDirStream):
 
     def dump(self):
         print '<std type="STD" offset="%d" size="%d bytes">' % (self.pos, self.size)
-        stdf = Stdf(self)
-        stdf.dump()
-        self.pos = stdf.pos
+        self.stdf = Stdf(self)
+        self.stdf.dump()
+        self.pos = self.stdf.pos
         xstzName = Xstz(self)
         xstzName.dump()
         self.pos = xstzName.pos
+        grLPUpxSw = GrLPUpxSw(self)
+        grLPUpxSw.dump()
+        self.pos = grLPUpxSw.pos
         print '</std>'
 
 class LPStd(DOCDirStream):


More information about the Libreoffice-commits mailing list