diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2006-06-06 20:28:09 +0000 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2006-06-06 20:28:09 +0000 |
commit | 35afc13ebf8f82cfc7a3e6d6f7ba6d5062c5cdc1 (patch) | |
tree | 2986828cb33dd094aeef81a362fdb13341a4dd81 /scripts/MakeHeader.py | |
parent | 5d07013e83bd7e5a2fad220105b93d09b356bb86 (diff) |
New version of MakeHeader. Does not use 'private' comment annotation,
using the 'static' storage class instead. Automatically generates
'extern' declarations in headers for non-static data.
Diffstat (limited to 'scripts/MakeHeader.py')
-rwxr-xr-x | scripts/MakeHeader.py | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/scripts/MakeHeader.py b/scripts/MakeHeader.py index 2268fcfd..9d78c487 100755 --- a/scripts/MakeHeader.py +++ b/scripts/MakeHeader.py @@ -8,6 +8,7 @@ SKIP=3 SKIPONE=4 state = ANY +static = 0 file = open(sys.argv[1]) name = sys.argv[1][:-2] @@ -34,15 +35,27 @@ for line in file.readlines(): state = COPY elif line == selfheader: pass - elif string.find(line, "typedef") == 0 or line == "/* private */": - state = SKIP - elif string.find(line, "/* private property */") == 0: - state = SKIPONE - elif len(line) > 1 and line[-1] == "{": - out.write( line[:-2] + ";" ) - state = SKIP - elif line == "": - out.write( "" ) + elif line.find("htop - ") == 0 and line[-2:] == ".c": + out.write(line[:-2] + ".h") + elif line.find("static ") != -1: + if line[-1] == "{": + state = SKIP + static = 1 + else: + state = SKIPONE + elif len(line) > 1: + static = 0 + equals = line.find(" = ") + if line[-3:] == "= {": + out.write( "extern " + line[:-4] + ";" ) + state = SKIP + elif equals != -1: + out.write("extern " + line[:equals] + ";" ) + elif line[-1] == "{": + out.write( line[:-2] + ";" ) + state = SKIP + else: + out.write( line ) else: out.write( line ) elif state == COPY: @@ -52,7 +65,11 @@ for line in file.readlines(): out.write( line ) elif state == SKIP: if len(line) >= 1 and line[0] == "}": - state = ANY + if static == 1: + state = SKIPONE + else: + state = ANY + static = 0 elif state == SKIPONE: state = ANY |