diff --git a/ChangeLog b/ChangeLog index 7bd90a8f0..45d962298 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-03-02 Wolfgang Sourdeau + + * OpenChange/gen-property-selectors.py: adapted for new getters + name, based on new property names. Added all new clashing + properties to bannedProps. + 2012-03-01 Wolfgang Sourdeau * SoObjects/SOGo/LDAPSource.m (_convertRecordToLDAPAttributes): diff --git a/OpenChange/gen-property-selectors.py b/OpenChange/gen-property-selectors.py index cd638b351..919bcad92 100755 --- a/OpenChange/gen-property-selectors.py +++ b/OpenChange/gen-property-selectors.py @@ -106,12 +106,32 @@ extern const enum MAPITAGS MAPIStoreSupportedProperties[]; # hack: some properties have multiple and incompatible types. Sometimes those # props are not related at all... -bannedProps = [ "PrBodyHtml", "PrFavAutosubfolders", "PrAttachDataObj", - "PrAclTable", "PrAclData", "PrRulesTable", "PrRulesData", - "PrDisableWinsock", "PrHierarchyServer", - "PrOfflineAddrbookEntryid", "PrShorttermEntryidFromObject", - "PrNormalMessageSizeExtended", "PrAssocMessageSizeExtended", - "PrMessageSizeExtended", "PrOabContainerGuid" ] +bannedProps = [ "PidTagBodyHtml", "PidTagFavAutosubfolders", + "PidTagAttachDataObj", "PidTagAclTable", "PidTagAclData", + "PidTagRulesTable", "PidTagRulesData", "PidTagDisableWinsock", + "PidTagHierarchyServer", "PidTagOfflineAddrbookEntryid", + "PidTagShorttermEntryidFromObject", + "PidTagNormalMessageSizeExtended", + "PidTagAssocMessageSizeExtended", "PidTagMessageSizeExtended", + "PidTagOabContainerGuid", + "PidTagOfflineAddressBookMessageClass", "PidTagScriptData", + "PidTagOfflineAddressBookTruncatedProperties", + "PidTagOfflineAddressBookContainerGuid", + "PidTagOfflineAddressBookDistinguishedName", + "PidTagOfflineAddressBookShaHash", + "PidTagSenderTelephoneNumber", "PidTagGatewayNeedsToRefresh", + "PidTagWlinkType", "PidTagWlinkFlags", + "PidTagWlinkGroupClsid", "PidTagWlinkGroupName", + "PidTagWlinkGroupHeaderID", + "PidTagScheduleInfoDelegatorWantsCopy", "PidTagWlinkOrdinal", + "PidTagWlinkSection", "PidTagWlinkCalendarColor", + "PidTagWlinkAddressBookEID", "PidTagWlinkFolderType", + "PidTagScheduleInfoDelegateNames", + "PidTagScheduleInfoDelegateEntryIds", + "PidTagBusiness2TelephoneNumbers", + "PidTagHome2TelephoneNumbers", + "PidTagAttachDataObject" + ] def ParseExchangeH(names, lines): state = 0 @@ -132,23 +152,15 @@ def ParseExchangeH(names, lines): ParseExchangeHDefinition(names, stripped) x = x + 1 -def GenExchangeHName(startname): - parts = startname.split("_") - newParts = [] - for part in parts: - newParts.append("%s%s" % (part[0].upper(), part[1:].lower())) - - return "".join(newParts) - def ParseExchangeHDefinition(names, line): stripped = line.strip() eqIdx = stripped.find("=") if eqIdx == -1: raise Exception, "line does not contain a '='" - propName = GenExchangeHName(stripped[0:eqIdx]) - if not propName.endswith("Error") and not propName.endswith("Unicode") \ - and not propName.startswith("PrProfile") \ - and propName not in bannedProps: + + propName = stripped[0:eqIdx] + if not propName.endswith("_Error") and not propName.endswith("_string8") \ + and propName not in bannedProps: intIdx = stripped.find("(int", eqIdx) valueIdx = stripped.find("0x", intIdx + 1) endIdx = stripped.find(")", valueIdx) @@ -169,9 +181,9 @@ def ParseMapistoreNameIDHDefinition(names, line): raise Exception, "line does not contain a 'Pid'" valueIdx = stripped.find("0x") propName = stripped[pidIdx:valueIdx].strip() - value = int(stripped[valueIdx:], 16) - - names[propName] = value + if not propName.startswith("PidLidUnknown") and propName not in bannedProps: + value = int(stripped[valueIdx:], 16) + names[propName] = value def FindHFile(filename): found = None