forked from openkylin/z3
72 lines
1.8 KiB
Python
72 lines
1.8 KiB
Python
# Copyright (c) 2015 Microsoft Corporation
|
|
|
|
import os
|
|
import re
|
|
|
|
ifndef = re.compile("#ifndef \_(.*)\_H\_")
|
|
doubleu = re.compile("#(.*) (.*)\_\_H\_")
|
|
defn = re.compile("#define \_(.*)\_H\_")
|
|
endif = re.compile("#endif /\* \_(.*)\_H\_")
|
|
|
|
|
|
def fix_hdr(file):
|
|
print(file)
|
|
tmp = "%s.tmp" % file
|
|
ins = open(file)
|
|
ous = open(tmp,'w')
|
|
line = ins.readline()
|
|
found = False
|
|
while line:
|
|
m = doubleu.search(line)
|
|
if m:
|
|
ous.write("#")
|
|
ous.write(m.group(1))
|
|
ous.write(" ")
|
|
ous.write(m.group(2))
|
|
ous.write("_H_\n")
|
|
line = ins.readline()
|
|
found = True
|
|
continue
|
|
m = ifndef.search(line)
|
|
if m:
|
|
print(m.group(1))
|
|
ous.write("#ifndef ")
|
|
ous.write(m.group(1))
|
|
ous.write("_H_\n")
|
|
line = ins.readline()
|
|
found = True
|
|
continue
|
|
m = defn.search(line)
|
|
if m:
|
|
ous.write("#define ")
|
|
ous.write(m.group(1))
|
|
ous.write("_H_\n")
|
|
line = ins.readline()
|
|
found = True
|
|
continue
|
|
m = endif.search(line)
|
|
if m:
|
|
ous.write("#endif /* ")
|
|
ous.write(m.group(1))
|
|
ous.write("_H_ */\n")
|
|
line = ins.readline()
|
|
found = True
|
|
continue
|
|
ous.write(line)
|
|
line = ins.readline()
|
|
ins.close()
|
|
ous.close()
|
|
if found:
|
|
os.system("move %s %s" % (tmp, file))
|
|
else:
|
|
os.system("del %s" % tmp)
|
|
|
|
def fixup(dir):
|
|
for root, dirs, files in os.walk(dir):
|
|
for f in files:
|
|
if f.endswith('.h'):
|
|
path = "%s\\%s" % (root, f)
|
|
fix_hdr(path)
|
|
|
|
fixup('src')
|