diff -r d9b232ec7057 -r 685d9a26e4f9 objdictgen/node.py --- a/objdictgen/node.py Mon Sep 24 09:37:04 2007 +0200 +++ b/objdictgen/node.py Tue Sep 25 08:19:44 2007 +0200 @@ -738,6 +738,11 @@ self.UserMapping[index]["values"] = values return True elif 0 <= subIndex < len(self.UserMapping[index]["values"]) and values != None: + if "type" in values: + if self.IsStringType(values["type"]) and not self.IsStringType(self.UserMapping[index]["values"][subIndex]["type"]): + self.SetEntry(index, subIndex, "") + elif not self.IsStringType(values["type"]) and self.IsStringType(self.UserMapping[index]["values"][subIndex]["type"]): + self.SetEntry(index, subIndex, 0) self.UserMapping[index]["values"][subIndex].update(values) return True return False @@ -972,6 +977,19 @@ return dic #------------------------------------------------------------------------------- +# Type helper functions +#------------------------------------------------------------------------------- + + def IsStringType(self, index): + if index in (0x9, 0xA, 0xB): + return True + elif 0xA0 <= index < 0x100: + result = self.GetEntry(index, 1) + if result is not None and result in (0x9, 0xA, 0xB): + return True + return False + +#------------------------------------------------------------------------------- # Type and Map Variable Lists #-------------------------------------------------------------------------------