diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-09-25 18:56:58 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-09-25 18:56:58 -0700 |
commit | 80e2f0333d58b56fb33f91f17574158f3a39e04c (patch) | |
tree | 5bcda082e2650b71278675a26d279f8276d8b372 /emscripten.py | |
parent | 39b93880df73cb06c33d7eb393b150a7c961f4bd (diff) |
fix header parsing bug and unistd.h header; fixes unistd_confstr
Diffstat (limited to 'emscripten.py')
-rwxr-xr-x | emscripten.py | 8 |
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 |