Fixes encodings in vcxproj files and adds script to automatically do it. (#1631)

This commit is contained in:
Steve Dower 2017-05-17 13:06:39 -07:00 committed by GitHub
parent 78e25ab5b3
commit 4486a09346
2 changed files with 37 additions and 1 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">

36
PCbuild/fix_encoding.py Normal file
View File

@ -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 <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')