| #! /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') |