diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..c64e1845 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf + +*.hdr binary diff --git a/.gitignore b/.gitignore index 58ebfef0..77ef6d53 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +# Godot 4+ specific ignores +.godot/ # Godot-specific ignores .import/ diff --git a/file_format.sh b/file_format.sh index ae0cbc79..fab029eb 100755 --- a/file_format.sh +++ b/file_format.sh @@ -14,18 +14,15 @@ while IFS= read -rd '' f; do elif [[ "$f" == *"hdr" ]]; then continue fi - # Ensures that files are UTF-8 formatted. + # Ensure that files are UTF-8 formatted. recode UTF-8 "$f" 2> /dev/null - # Ensures that files have LF line endings. + # Ensure that files have LF line endings and do not contain a BOM. dos2unix "$f" 2> /dev/null - # Ensures that files do not contain a BOM. - sed -i '1s/^\xEF\xBB\xBF//' "$f" - # Ensures that files end with newline characters. - tail -c1 < "$f" | read -r _ || echo >> "$f"; - # Remove trailing space characters. - sed -z -i 's/\x20\x0A/\x0A/g' "$f" + # Remove trailing space characters and ensures that files end + # with newline characters. -l option handles newlines conveniently. + perl -i -ple 's/\s*$//g' "$f" # Remove the character sequence "== true" if it has a leading space. - sed -z -i 's/\x20== true//g' "$f" + perl -i -pe 's/\x20== true//g' "$f" # We don't want to change lines around braces in godot/tscn files. if [[ "$f" == *"godot" ]]; then continue