summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2017-05-17 20:06:39 (GMT)
committerGitHub <noreply@github.com>2017-05-17 20:06:39 (GMT)
commit4486a0934680af26a21f308eb9c295d2525570f2 (patch)
tree072d5848fd604bb5f05a28932c07aad90eb002f7
parent78e25ab5b33a0f9d03c9b6a6ece328abcc645c4b (diff)
downloadcpython-4486a0934680af26a21f308eb9c295d2525570f2.zip
cpython-4486a0934680af26a21f308eb9c295d2525570f2.tar.gz
cpython-4486a0934680af26a21f308eb9c295d2525570f2.tar.bz2
Fixes encodings in vcxproj files and adds script to automatically do it. (#1631)
-rw-r--r--PCbuild/_overlapped.vcxproj2
-rw-r--r--PCbuild/fix_encoding.py36
2 files changed, 37 insertions, 1 deletions
diff --git a/PCbuild/_overlapped.vcxproj b/PCbuild/_overlapped.vcxproj
index 8cf8a86..26b2d21 100644
--- a/PCbuild/_overlapped.vcxproj
+++ b/PCbuild/_overlapped.vcxproj
@@ -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">
diff --git a/PCbuild/fix_encoding.py b/PCbuild/fix_encoding.py
new file mode 100644
index 0000000..60a892a
--- /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 <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')