plcopen/plcopen.py
changeset 594 41e62b3174dc
parent 590 b2442bb10c0b
child 608 b67536e93c11
--- a/plcopen/plcopen.py	Thu Nov 24 16:30:06 2011 +0100
+++ b/plcopen/plcopen.py	Fri Dec 09 10:06:44 2011 +0100
@@ -129,26 +129,30 @@
 cls = PLCOpenClasses.get("formattedText", None)
 if cls:
     def updateElementName(self, old_name, new_name):
-        index = self.text.find(old_name)
+        text = self.text.decode("utf-8")
+        index = text.find(old_name)
         while index != -1:
-            if index > 0 and (self.text[index - 1].isalnum() or self.text[index - 1] == "_"):
-                index = self.text.find(old_name, index + len(old_name))
-            elif index < len(self.text) - len(old_name) and (self.text[index + len(old_name)].isalnum() or self.text[index + len(old_name)] == "_"):
-                index = self.text.find(old_name, index + len(old_name))
+            if index > 0 and (text[index - 1].isalnum() or text[index - 1] == "_"):
+                index = text.find(old_name, index + len(old_name))
+            elif index < len(text) - len(old_name) and (text[index + len(old_name)].isalnum() or text[index + len(old_name)] == "_"):
+                index = text.find(old_name, index + len(old_name))
             else:
-                self.text = self.text[:index] + new_name + self.text[index + len(old_name):]
-                index = self.text.find(old_name, index + len(new_name))
+                text = text[:index] + new_name + text[index + len(old_name):]
+                index = text.find(old_name, index + len(new_name))
+        self.text = text.encode("utf-8")
     setattr(cls, "updateElementName", updateElementName)
     
     def updateElementAddress(self, address_model, new_leading):
+        text = self.text.decode("utf-8")
         startpos = 0
-        result = address_model.search(self.text, startpos)
+        result = address_model.search(text, startpos)
         while result is not None:
             groups = result.groups()
             new_address = groups[0] + new_leading + groups[2]
-            self.text = self.text[:result.start()] + new_address + self.text[result.end():]
+            text = text[:result.start()] + new_address + text[result.end():]
             startpos = result.start() + len(new_address)
             result = address_model.search(self.text, startpos)
+        self.text = text.encode("utf-8")
     setattr(cls, "updateElementAddress", updateElementAddress)
     
     def Search(self, criteria, parent_infos):