2009-06-07 14:40:58 +00:00
|
|
|
import hashlib, sys, re
|
2007-08-22 21:13:33 +00:00
|
|
|
|
|
|
|
alphanum = "0123456789abcdefghijklmnopqrstuvwzyxABCDEFGHIJKLMNOPQRSTUVWXYZ_"
|
|
|
|
|
|
|
|
def cstrip(lines):
|
|
|
|
d = ""
|
|
|
|
for l in lines:
|
|
|
|
l = re.sub("#.*", "", l)
|
|
|
|
l = re.sub("//.*", "", l)
|
|
|
|
d += l + " "
|
|
|
|
d = re.sub("\/\*.*?\*/", "", d) # remove /* */ comments
|
|
|
|
d = d.replace("\t", " ") # tab to space
|
|
|
|
d = re.sub(" *", " ", d) # remove double spaces
|
|
|
|
d = re.sub("", "", d) # remove /* */ comments
|
|
|
|
|
|
|
|
d = d.strip()
|
|
|
|
|
|
|
|
# this eats up cases like 'n {'
|
|
|
|
i = 1
|
|
|
|
while i < len(d)-2:
|
|
|
|
if d[i] == ' ':
|
|
|
|
if not (d[i-1] in alphanum and d[i+1] in alphanum):
|
|
|
|
d = d[:i] + d[i+1:]
|
|
|
|
i += 1
|
|
|
|
return d
|
|
|
|
|
|
|
|
f = ""
|
|
|
|
for filename in sys.argv[1:]:
|
|
|
|
f += cstrip([l.strip() for l in file(filename)])
|
|
|
|
|
2009-06-07 14:40:58 +00:00
|
|
|
print '#define GAME_NETVERSION_HASH "%s"' % hashlib.md5(f).hexdigest().lower()[16:]
|