From 49ea7cd1fdac7e85f6744ca79232fcfc9e11d3c4 Mon Sep 17 00:00:00 2001 From: D G Turner Date: Fri, 16 Aug 2013 06:54:54 +0100 Subject: GUI: Add too long string literal warning code to theme generation tool. This has the same effect as clang's -Woverlength-strings warning of string literals longer than C++ compilers are specified to work with. --- gui/themes/scummtheme.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gui/themes/scummtheme.py b/gui/themes/scummtheme.py index 4c55fd79de..e8001f8bc6 100755 --- a/gui/themes/scummtheme.py +++ b/gui/themes/scummtheme.py @@ -37,6 +37,7 @@ def parseSTX(theme_file, def_file): comm = re.compile("", re.DOTALL) head = re.compile("<\?(.*?)\?>") + strlitcount = 0 output = "" for line in theme_file: output += line.rstrip("\r\n\t ").lstrip() + " \n" @@ -48,7 +49,9 @@ def parseSTX(theme_file, def_file): for line in output.splitlines(): if line and not line.isspace(): + strlitcount += len(line) def_file.write("\"" + line + "\"\n") + return strlitcount def buildDefTheme(themeName): def_file = open("default.inc", "w") @@ -57,16 +60,23 @@ def buildDefTheme(themeName): print ("Cannot open default theme dir.") def_file.write(""" ""\n""") + strlitcount = 24 for filename in os.listdir(themeName): 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) + strlitcount += parseSTX(theme_file, def_file) theme_file.close() def_file.close() + if strlitcount > 65535: + print("WARNING: default.inc string literal is of length %d which exceeds the" % strlitcount) + print(" maximum length of 65536 that C++ compilers are required to support.") + print(" It is likely that bugs will occur dependent on compiler behaviour.") + print(" To avoid this, reduce the size of the theme.") + def printUsage(): print ("===============================") print ("ScummVM Theme Generation Script") -- cgit v1.2.3