msodumper/wmfrecord.py | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-)
New commits: commit 5b01cfd6971e8822b8d52e0ba3bad2134a9e5aa9 Author: Hossein <hoss...@libreoffice.org> AuthorDate: Tue Sep 28 09:42:03 2021 +0200 Commit: Hossein <hoss...@libreoffice.org> CommitDate: Tue Sep 28 09:50:54 2021 +0200 Added dump() for 2 wmf records in wmf-dump Added dump() for 2 wmf records to wmf-dump.py List of records: 1. SaveDC (META_SAVEDC) 2. RestoreDC (META_RESTOREDC) Change-Id: I12007c40d385b3b3ca25876428f37e01e241757d Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/122754 Tested-by: Hossein <hoss...@libreoffice.org> Reviewed-by: Hossein <hoss...@libreoffice.org> diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py index dc1ecdb..6065163 100644 --- a/msodumper/wmfrecord.py +++ b/msodumper/wmfrecord.py @@ -953,13 +953,22 @@ class SetTextCharacterExtra(WMFRecord): pass -class RestoreDC: - def __init__(self, parent): +class RestoreDC(WMFRecord): + def __init__(self, parent, name=None): WMFRecord.__init__(self, parent) + if name: + self.name = name + else: + self.name = "restoredc" def dump(self): - print("<todo/>") - pass + dataPos = self.pos + print('<%s type="RestoreDC">' % self.name) + self.printAndSet("RecordSize", self.readuInt32(), hexdump=False) + self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True) + self.printAndSet("nSavedDC", self.readInt16(), hexdump=False) + # RecordSize is described in words, so we should double for bytes + assert self.pos == dataPos + self.RecordSize * 2 class ResizePalette(WMFRecord): @@ -1423,21 +1432,20 @@ class RoundRect(WMFRecord): class SaveDC(WMFRecord): - def __init__(self, parent): - WMFRecord.__init__(self, parent) - - def dump(self): - print("<todo/>") - pass - - -class SaveDC(WMFRecord): - def __init__(self, parent): + def __init__(self, parent, name=None): WMFRecord.__init__(self, parent) + if name: + self.name = name + else: + self.name = "savedc" def dump(self): - print("<todo/>") - pass + dataPos = self.pos + print('<%s type="SaveDC">' % self.name) + self.printAndSet("RecordSize", self.readuInt32(), hexdump=False) + self.printAndSet("RecordFunction", self.readuInt16(), hexdump=True) + # RecordSize is described in words, so we should double for bytes + assert self.pos == dataPos + self.RecordSize * 2 class Pie(WMFRecord):