Skip to content

Commit

Permalink
Merge pull request #94652 from shana/fix-header-guards
Browse files Browse the repository at this point in the history
Fix `header_guards.py` so it detects the copyright header properly.
  • Loading branch information
akien-mga authored Jul 23, 2024
2 parents e4f7b69 + 09f2b95 commit 18c1c25
Showing 1 changed file with 28 additions and 9 deletions.
37 changes: 28 additions & 9 deletions misc/scripts/header_guards.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,38 @@
print("Invalid usage of header_guards.py, it should be called with a path to one or multiple files.")
sys.exit(1)

HEADER_CHECK_OFFSET = 30
HEADER_BEGIN_OFFSET = 31
HEADER_END_OFFSET = -1

changed = []
invalid = []

for file in sys.argv[1:]:
with open(file, "rt", encoding="utf-8", newline="\n") as f:
header_start = -1
HEADER_CHECK_OFFSET = -1

with open(file.strip(), "rt", encoding="utf-8", newline="\n") as f:
lines = f.readlines()

if len(lines) <= HEADER_BEGIN_OFFSET:
continue # Most likely a dummy file.
for idx, line in enumerate(lines):
sline = line.strip()

if header_start < 0:
if sline == "": # Skip empty lines at the top.
continue

if sline.startswith("/**********"): # Godot header starts this way.
header_start = idx
else:
HEADER_CHECK_OFFSET = 0 # There is no Godot header.
break
else:
if not sline.startswith("*") and not sline.startswith("/*"): # Not in the Godot header anymore.
HEADER_CHECK_OFFSET = idx + 1 # The include should be two lines below the Godot header.
break

if HEADER_CHECK_OFFSET < 0:
continue

if lines[HEADER_CHECK_OFFSET].startswith("#import"):
continue # Early catch obj-c file.
HEADER_BEGIN_OFFSET = HEADER_CHECK_OFFSET + 1
HEADER_END_OFFSET = len(lines) - 1

split = file.split("/") # Already in posix-format.

Expand Down Expand Up @@ -82,6 +98,9 @@
objc = False

for idx, line in enumerate(lines):
if line.startswith("// #import"): # Some dummy obj-c files only have commented out import lines.
objc = True
break
if not line.startswith("#"):
continue
elif line.startswith("#ifndef") and header_check == -1:
Expand Down

0 comments on commit 18c1c25

Please sign in to comment.