aboutsummaryrefslogtreecommitdiff
path: root/emscripten.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-09-25 18:56:58 -0700
committerAlon Zakai <alonzakai@gmail.com>2011-09-25 18:56:58 -0700
commit80e2f0333d58b56fb33f91f17574158f3a39e04c (patch)
tree5bcda082e2650b71278675a26d279f8276d8b372 /emscripten.py
parent39b93880df73cb06c33d7eb393b150a7c961f4bd (diff)
fix header parsing bug and unistd.h header; fixes unistd_confstr
Diffstat (limited to 'emscripten.py')
-rwxr-xr-xemscripten.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/emscripten.py b/emscripten.py
index e316e806..8a1fb03e 100755
--- a/emscripten.py
+++ b/emscripten.py
@@ -169,23 +169,25 @@ def main(args):
defines = {}
include_root = path_from_root('system', 'include')
headers = args.headers[0].split(',') if len(args.headers) > 0 else []
+ seen_headers = set()
while len(headers) > 0:
header = headers.pop(0)
if not os.path.isabs(header):
header = os.path.join(include_root, header)
+ seen_headers.add(header)
for line in open(header, 'r'):
line = line.replace('\t', ' ')
- m = re.match('^ *#define +(?P<name>[-\w_.]+) +\(?(?P<value>[-\w_.|]+)\)?.*', line)
+ m = re.match('^ *# *define +(?P<name>[-\w_.]+) +\(?(?P<value>[-\w_.|]+)\)?.*', line)
if m:
defines[m.group('name')] = m.group('value')
- m = re.match('^ *#include *["<](?P<name>[\w_.-/]+)[">].*', line)
+ m = re.match('^ *# *include *["<](?P<name>[\w_.-/]+)[">].*', line)
if m:
# Find this file
found = False
for w in [w for w in os.walk(include_root)]:
for f in w[2]:
curr = os.path.join(w[0], f)
- if curr.endswith(m.group('name')):
+ if curr.endswith(m.group('name')) and curr not in seen_headers:
headers.append(curr)
found = True
break