From be62eabfcc84e055d3747718f1df8f41db444c8d Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 17 May 2017 10:53:20 -0700 Subject: [PATCH] Fixes encodings in vcxproj files and adds script to automatically do it. --- PCbuild/_overlapped.vcxproj | 2 +- PCbuild/fix_encoding.py | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 PCbuild/fix_encoding.py diff --git a/PCbuild/_overlapped.vcxproj b/PCbuild/_overlapped.vcxproj index 8cf8a8677bb378..26b2d214c35001 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 00000000000000..60a892a4f7ad59 --- /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')