#! /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 <steve.dower@python.org>" __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')