summaryrefslogtreecommitdiff
path: root/misc/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'misc/scripts')
-rw-r--r--misc/scripts/fix_headers.py (renamed from misc/scripts/addheader.py)65
-rw-r--r--misc/scripts/make_glwrapper.py9
2 files changed, 54 insertions, 20 deletions
diff --git a/misc/scripts/addheader.py b/misc/scripts/fix_headers.py
index 58d9fa35a3..48b9628b1f 100644
--- a/misc/scripts/addheader.py
+++ b/misc/scripts/fix_headers.py
@@ -1,3 +1,6 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
header = """\
/*************************************************************************/
/* $filename */
@@ -30,22 +33,21 @@ header = """\
/*************************************************************************/
"""
-f = open("files", "rb")
+files = open("files", "rb")
+
+fname = files.readline()
-fname = f.readline()
while (fname != ""):
- fr = open(fname.strip(), "rb")
- l = fr.readline()
- bc = False
+ # Handle replacing $filename with actual filename and keep alignment
fsingle = fname.strip()
-
if (fsingle.find("/") != -1):
fsingle = fsingle[fsingle.rfind("/") + 1:]
rep_fl = "$filename"
rep_fi = fsingle
len_fl = len(rep_fl)
len_fi = len(rep_fi)
+ # Pad with spaces to keep alignment
if (len_fi < len_fl):
for x in range(len_fl - len_fi):
rep_fi += " "
@@ -56,16 +58,45 @@ while (fname != ""):
text = header.replace(rep_fl, rep_fi)
else:
text = header.replace("$filename", fsingle)
+ text += "\n"
+
+ # We now have the proper header, so we want to ignore the one in the original file
+ # and potentially empty lines and badly formatted lines, while keeping comments that
+ # come after the header, and then keep everything non-header unchanged.
+ # To do so, we skip empty lines that may be at the top in a first pass.
+ # In a second pass, we skip all consecutive comment lines starting with "/*",
+ # then we can append the rest (step 2).
+
+ fileread = open(fname.strip(), "rb")
+ line = fileread.readline()
+ header_done = False
+
+ while (line.strip() == ""): # Skip empty lines at the top
+ line = fileread.readline()
+
+ if (line.find("/**********") == -1): # Godot header starts this way
+ # Maybe starting with a non-Godot comment, abort header magic
+ header_done = True
+
+ while (not header_done): # Handle header now
+ if (line.find("/*") != 0): # No more starting with a comment
+ header_done = True
+ if (line.strip() != ""):
+ text += line
+ line = fileread.readline()
+
+ while (line != ""): # Dump everything until EOF
+ text += line
+ line = fileread.readline()
+
+ fileread.close()
+
+ # Write
+ filewrite = open(fname.strip(), "wb")
+ filewrite.write(text)
+ filewrite.close()
- while (l != ""):
- if ((l.find("//") != 0 and l.find("/*") != 0 and l.strip() != "") or bc):
- text += l
- bc = True
- l = fr.readline()
+ # Next file
+ fname = files.readline()
- fr.close()
- fr = open(fname.strip(), "wb")
- fr.write(text)
- fr.close()
- # print(text)
- fname = f.readline()
+files.close() \ No newline at end of file
diff --git a/misc/scripts/make_glwrapper.py b/misc/scripts/make_glwrapper.py
index 5694d2327e..15b66a950b 100644
--- a/misc/scripts/make_glwrapper.py
+++ b/misc/scripts/make_glwrapper.py
@@ -16,9 +16,7 @@ READ_CONSTANTS = 2
read_what = READ_TYPES
-for x in (range(len(sys.argv) - 1)):
- f = open(sys.argv[x + 1], "r")
-
+def read_file(f):
while(True):
line = f.readline()
@@ -86,6 +84,9 @@ for x in (range(len(sys.argv) - 1)):
functions.append(funcdata)
print(funcdata)
+for path in sys.argv[1:]:
+ with open(path, "r") as f:
+ read_file(f)
# print(types)
# print(constants)
@@ -156,6 +157,7 @@ f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) );\n")
f.write("#ifdef __cplusplus\n}\n#endif\n")
f.write("#endif\n\n")
+f.close()
f = open("glwrapper.c", "w")
@@ -176,3 +178,4 @@ for x in functions:
f.write("\n\n")
f.write("}\n")
f.write("\n\n")
+f.close()