From: Steve Dower Date: Wed, 17 May 2017 20:06:39 +0000 (-0700) Subject: Fixes encodings in vcxproj files and adds script to automatically do it. (#1631) X-Git-Tag: v3.7.0a1~795 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4486a0934680af26a21f308eb9c295d2525570f2;p=python Fixes encodings in vcxproj files and adds script to automatically do it. (#1631) --- diff --git a/PCbuild/_overlapped.vcxproj b/PCbuild/_overlapped.vcxproj index 8cf8a8677b..26b2d214c3 100644 --- a/PCbuild/_overlapped.vcxproj +++ b/PCbuild/_overlapped.vcxproj @@ -1,4 +1,4 @@ - + diff --git a/PCbuild/fix_encoding.py b/PCbuild/fix_encoding.py new file mode 100644 index 0000000000..60a892a4f7 --- /dev/null +++ b/PCbuild/fix_encoding.py @@ -0,0 +1,36 @@ +#! /usr/bin/env python3 +# +# Fixes encoding of the project files to add UTF-8 BOM. +# +# Visual Studio insists on having the BOM in project files, and will +# restore it on first edit. This script will go through the relevant +# files and ensure the BOM is included, which should prevent too many +# irrelevant changesets. +# + +from pathlib import Path + +__author__ = "Steve Dower " +__version__ = "1.0.0.0" + +def fix(p): + with open(p, 'r', encoding='utf-8-sig') as f: + data = f.read() + with open(p, 'w', encoding='utf-8-sig') as f: + f.write(data) + +ROOT_DIR = Path(__file__).resolve().parent + +if __name__ == '__main__': + count = 0 + print('Fixing:') + for f in ROOT_DIR.glob('*.vcxproj'): + print(f' - {f.name}') + fix(f) + count += 1 + for f in ROOT_DIR.glob('*.vcxproj.filters'): + print(f' - {f.name}') + fix(f) + count += 1 + print() + print(f'Fixed {count} files')