msodumper/xlsrecord.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-)
New commits: commit c4192de229ceb549b0a7bc26fa1b1fc38972d83d Author: Eike Rathke <er...@redhat.com> Date: Tue Mar 18 11:11:57 2014 +0100 partly implemented FEAT FeatProtection structure diff --git a/msodumper/xlsrecord.py b/msodumper/xlsrecord.py index b3cbece..1a0f336 100644 --- a/msodumper/xlsrecord.py +++ b/msodumper/xlsrecord.py @@ -2717,17 +2717,24 @@ class FeatureData(BaseRecordHandler): self.appendLine("feature type: %d (%s)"%(featureTypeId, featureTypeText)) self.appendLine("size of feature data: %d (%s)"%(cbFeatData, cbFeatDataText)) - # http://msdn.microsoft.com/en-us/library/dd911261.aspx - # Documentation isn't very clear on this, for cbFeatData it says must - # be 0 if 'isf' (featureTypeId) is not ISFFEC2 (type 3) but for rgbFeat - # (the variable data field) lists structures for each of the possible - # types. However, so far there was no FeatProtection structure data for - # ISFPROTECTION encountered. - - if featureTypeId == 3 and cbFeatData > 0: + if featureTypeId == 2: + # enhanced protection, ISFPROTECTION, FeatProtection structure + Areserved = self.readUnsignedInt(4) + wPassword = self.readUnsignedInt(4) + stTitle = self.readXLUnicodeString() + self.appendLine("stTitle: %s"%stTitle) + if Areserved & 1 == 1: + # SDContainer + cbSD = self.readUnsignedInt(4) + self.appendLine("cbSD: %d"%cbSD) + self.readBytes(cbSD) + elif featureTypeId == 3 and cbFeatData > 0: # ignored formula errors, ISFFEC2, FeatFormulaErr2 structure self.readBytes(cbFeatData) - self.appendLine("FeatFormulaErr2 yet not handled") + self.appendLine("FeatFormulaErr2 not handled") + elif featureTypeId == 4: + # smart tag, ISFFACTOID, FeatSmartTag structure + self.appendLine("FeatSmartTag not handled") for ref in refs: self.appendLine("applied to range: (col=%d,row=%d) - (col=%d,row=%d)"% _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits