summaryrefslogtreecommitdiffstats
path: root/scintilla/scripts/FileGenerator.py
diff options
context:
space:
mode:
Diffstat (limited to 'scintilla/scripts/FileGenerator.py')
-rw-r--r--scintilla/scripts/FileGenerator.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/scintilla/scripts/FileGenerator.py b/scintilla/scripts/FileGenerator.py
index 01a79bf..e2750eb 100644
--- a/scintilla/scripts/FileGenerator.py
+++ b/scintilla/scripts/FileGenerator.py
@@ -137,6 +137,25 @@ def Regenerate(filename, commentPrefix, *lists):
"""
Generate(filename, filename, commentPrefix, *lists)
+def UpdateLineInPlistFile(path, key, value):
+ """Replace a single string value preceded by 'key' in an XML plist file.
+ """
+ lines = []
+ keyCurrent = ""
+ with codecs.open(path, "rb", "utf-8") as f:
+ for l in f.readlines():
+ ls = l.strip()
+ if ls.startswith("<key>"):
+ keyCurrent = ls.replace("<key>", "").replace("</key>", "")
+ elif ls.startswith("<string>"):
+ if keyCurrent == key:
+ start, tag, rest = l.partition("<string>")
+ val, etag, end = rest.partition("</string>")
+ l = start + tag + value + etag + end
+ lines.append(l)
+ contents = "".join(lines)
+ UpdateFile(path, contents)
+
def UpdateLineInFile(path, linePrefix, lineReplace):
lines = []
updated = False