X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/96bfd05319f9e393843e84ca5274d85ff248bad4..d062e17fca1a1fc0b82b269da4a7ad271075ba2b:/wxPython/tools/img2py.py diff --git a/wxPython/tools/img2py.py b/wxPython/tools/img2py.py index d6e7a0f0af..6af6409fa2 100644 --- a/wxPython/tools/img2py.py +++ b/wxPython/tools/img2py.py @@ -32,7 +32,7 @@ Options: -import sys, os, glob, getopt, tempfile +import sys, os, glob, getopt, tempfile, string import cPickle, cStringIO, zlib import img2xpm @@ -40,11 +40,20 @@ import img2xpm def crunch_data(data, compressed): # convert the lines to a Python list, pickle it and compress the result. lines = [] - for line in data[2:]: # skip the first two lines - lines.append(line[1:-3]) # chop one char from the front and three from the end + for line in data: + if line[0] == "\"": + # the line is typically (but not always): + # [quote] [quote][comma][newline] + + # chop one char from the front + line = line[1:] + + # now find the final quote and truncate there + quote = string.rfind(line, "\"") + + # and append the remaining data to our list + lines.append(line[:quote]) - # chop one extra char from the last line - lines[-1] = lines[-1][:-1] # pickle, crunch and convert it to a form suitable for embedding in code data = cPickle.dumps(lines) @@ -59,6 +68,7 @@ def crunch_data(data, compressed): c = i = 0 word = "" octdigits = "01234567" + hexdigits = "0123456789abcdef" while i < len(data): if data[i] != "\\": word = data[i] @@ -70,9 +80,16 @@ def crunch_data(data, compressed): break word = data[i:i+n] i = i + n + elif data[i+1] == 'x': + for n in range(2, 5): + if data[i+n] not in hexdigits: + break + word = data[i:i+n] + i = i + n else: word = data[i:i+2] i = i + 2 + l = len(word) if c + l >= 78-1: fp.write("\\\n")