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