diff options
Diffstat (limited to 'gui/themes/scummtheme.py')
-rwxr-xr-x | gui/themes/scummtheme.py | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/gui/themes/scummtheme.py b/gui/themes/scummtheme.py index 4c55fd79de..d5fa4dfca7 100755 --- a/gui/themes/scummtheme.py +++ b/gui/themes/scummtheme.py @@ -19,7 +19,9 @@ def buildTheme(themeName): zf.write('THEMERC', './THEMERC') - for filename in os.listdir('.'): + filenames = os.listdir('.') + filenames.sort() + for filename in filenames: if os.path.isfile(filename) and not filename[0] == '.' and filename.endswith(THEME_FILE_EXTENSIONS): zf.write(filename, './' + filename) print (" Adding file: " + filename) @@ -33,13 +35,21 @@ def buildAllThemes(): if os.path.isdir(os.path.join('.', f)) and not f[0] == '.': buildTheme(f) -def parseSTX(theme_file, def_file): +def parseSTX(theme_file, def_file, subcount): comm = re.compile("<!--(.*?)-->", re.DOTALL) head = re.compile("<\?(.*?)\?>") + strlitcount = 0 + subcount += 1 + + def_file.write(";\n const char *defaultXML" + str(subcount) + " = ") + output = "" for line in theme_file: - output += line.rstrip("\r\n\t ").lstrip() + " \n" + output += line.rstrip("\r\n\t ").lstrip() + if not output.endswith('>'): + output += ' ' + output += "\n" output = re.sub(comm, "", output) output = re.sub(head, "", output) @@ -48,7 +58,13 @@ def parseSTX(theme_file, def_file): for line in output.splitlines(): if line and not line.isspace(): + strlitcount += len(line) + if strlitcount > 65535: + subcount += 1 + def_file.write(";\n const char *defaultXML" + str(subcount) + " = ") + strlitcount = len(line) def_file.write("\"" + line + "\"\n") + return subcount def buildDefTheme(themeName): def_file = open("default.inc", "w") @@ -56,15 +72,24 @@ def buildDefTheme(themeName): if not os.path.isdir(themeName): print ("Cannot open default theme dir.") - def_file.write(""" "<?xml version = '1.0'?>"\n""") + def_file.write("""const char *defaultXML1 = "<?xml version = '1.0'?>"\n""") + subcount = 1 - for filename in os.listdir(themeName): + filenames = os.listdir(themeName) + filenames.sort() + for filename in filenames: filename = os.path.join(themeName, filename) if os.path.isfile(filename) and filename.endswith(".stx"): theme_file = open(filename, "r") - parseSTX(theme_file, def_file) + subcount = parseSTX(theme_file, def_file, subcount) theme_file.close() + def_file.write(";\nconst char *defaultXML[] = { defaultXML1") + for sub in range(2, subcount + 1): + def_file.write(", defaultXML" + str(sub)) + + def_file.write(" };\n") + def_file.close() def printUsage(): |