Add .hgeol file and fix newlines in the 2.6 branch.
diff --git a/.hgeol b/.hgeol
new file mode 100644
index 0000000..e1c1992
--- /dev/null
+++ b/.hgeol
@@ -0,0 +1,39 @@
+[patterns]
+
+# Non human-editable files are binary
+
+**.dsp  = BIN
+**.dsw  = BIN
+**.mk   = BIN
+**.sln  = BIN
+**.vcproj  = BIN
+**.vsprops = BIN
+
+**.aif  = BIN
+**.au   = BIN
+**.bmp  = BIN
+**.db   = BIN
+**.exe  = BIN
+**.icns = BIN
+**.gif  = BIN
+**.ico  = BIN
+**.info = BIN
+**.jpg  = BIN
+**.pck  = BIN
+**.png  = BIN
+**.psd  = BIN
+**.tar  = BIN
+**.xar  = BIN
+**.zip  = BIN
+
+Lib/email/test/data/msg_26.txt = BIN
+Lib/test/sndhdrdata/sndhdr.* = BIN
+Lib/test/decimaltestdata/*.decTest = BIN
+
+# All other files (which presumably are human-editable) are "native".
+# This must be the last rule!
+
+** = native
+
+[repository]
+native = LF
diff --git a/Doc/make.bat b/Doc/make.bat
index 7026951..80ac806 100644
--- a/Doc/make.bat
+++ b/Doc/make.bat
@@ -1,58 +1,58 @@
-@@echo off

-setlocal

-

-set SVNROOT=http://svn.python.org/projects

-if "%PYTHON%" EQU "" set PYTHON=..\pcbuild\python

-if "%HTMLHELP%" EQU "" set HTMLHELP=%ProgramFiles%\HTML Help Workshop\hhc.exe

-if "%DISTVERSION%" EQU "" for /f "usebackq" %%v in (`%PYTHON% tools/sphinxext/patchlevel.py`) do set DISTVERSION=%%v

-

-if "%1" EQU "" goto help

-if "%1" EQU "html" goto build

-if "%1" EQU "htmlhelp" goto build

-if "%1" EQU "latex" goto build

-if "%1" EQU "text" goto build

-if "%1" EQU "suspicious" goto build

-if "%1" EQU "linkcheck" goto build

-if "%1" EQU "changes" goto build

-if "%1" EQU "checkout" goto checkout

-if "%1" EQU "update" goto update

-

-:help

-set this=%~n0

-echo HELP

-echo.

-echo %this% checkout

-echo %this% update

-echo %this% html

-echo %this% htmlhelp

-echo %this% latex

-echo %this% text

-echo %this% suspicious

-echo %this% linkcheck

-echo %this% changes

-echo.

-goto end

-

-:checkout

-svn co %SVNROOT%/external/Sphinx-0.6.5/sphinx tools/sphinx

-svn co %SVNROOT%/external/docutils-0.6/docutils tools/docutils

-svn co %SVNROOT%/external/Jinja-2.3.1/jinja2 tools/jinja2

-svn co %SVNROOT%/external/Pygments-1.3.1/pygments tools/pygments

-goto end

-

-:update

-svn update tools/sphinx

-svn update tools/docutils

-svn update tools/jinja2

-svn update tools/pygments

-goto end

-

-:build

-if not exist build mkdir build

-if not exist build\%1 mkdir build\%1

-if not exist build\doctrees mkdir build\doctrees

-cmd /C %PYTHON% tools\sphinx-build.py -b%1 -dbuild\doctrees . build\%*

-if "%1" EQU "htmlhelp" "%HTMLHELP%" build\htmlhelp\python%DISTVERSION:.=%.hhp

-goto end

-

-:end

+@@echo off
+setlocal
+
+set SVNROOT=http://svn.python.org/projects
+if "%PYTHON%" EQU "" set PYTHON=..\pcbuild\python
+if "%HTMLHELP%" EQU "" set HTMLHELP=%ProgramFiles%\HTML Help Workshop\hhc.exe
+if "%DISTVERSION%" EQU "" for /f "usebackq" %%v in (`%PYTHON% tools/sphinxext/patchlevel.py`) do set DISTVERSION=%%v
+
+if "%1" EQU "" goto help
+if "%1" EQU "html" goto build
+if "%1" EQU "htmlhelp" goto build
+if "%1" EQU "latex" goto build
+if "%1" EQU "text" goto build
+if "%1" EQU "suspicious" goto build
+if "%1" EQU "linkcheck" goto build
+if "%1" EQU "changes" goto build
+if "%1" EQU "checkout" goto checkout
+if "%1" EQU "update" goto update
+
+:help
+set this=%~n0
+echo HELP
+echo.
+echo %this% checkout
+echo %this% update
+echo %this% html
+echo %this% htmlhelp
+echo %this% latex
+echo %this% text
+echo %this% suspicious
+echo %this% linkcheck
+echo %this% changes
+echo.
+goto end
+
+:checkout
+svn co %SVNROOT%/external/Sphinx-0.6.5/sphinx tools/sphinx
+svn co %SVNROOT%/external/docutils-0.6/docutils tools/docutils
+svn co %SVNROOT%/external/Jinja-2.3.1/jinja2 tools/jinja2
+svn co %SVNROOT%/external/Pygments-1.3.1/pygments tools/pygments
+goto end
+
+:update
+svn update tools/sphinx
+svn update tools/docutils
+svn update tools/jinja2
+svn update tools/pygments
+goto end
+
+:build
+if not exist build mkdir build
+if not exist build\%1 mkdir build\%1
+if not exist build\doctrees mkdir build\doctrees
+cmd /C %PYTHON% tools\sphinx-build.py -b%1 -dbuild\doctrees . build\%*
+if "%1" EQU "htmlhelp" "%HTMLHELP%" build\htmlhelp\python%DISTVERSION:.=%.hhp
+goto end
+
+:end
diff --git a/PC/VS7.1/build_ssl.bat b/PC/VS7.1/build_ssl.bat
index 9aad441..f6be3c0 100644
--- a/PC/VS7.1/build_ssl.bat
+++ b/PC/VS7.1/build_ssl.bat
@@ -1,12 +1,12 @@
-if "%1" == "ReleaseAMD64" call "%MSSdk%\SetEnv" /XP64 /RETAIL

-

-@echo off

-if not defined HOST_PYTHON (

-  if %1 EQU Debug (

-    set HOST_PYTHON=python_d.exe

-  ) ELSE (

-    set HOST_PYTHON=python.exe

-  )

-)

-%HOST_PYTHON% build_ssl.py %1 %2

-

+if "%1" == "ReleaseAMD64" call "%MSSdk%\SetEnv" /XP64 /RETAIL
+
+@echo off
+if not defined HOST_PYTHON (
+  if %1 EQU Debug (
+    set HOST_PYTHON=python_d.exe
+  ) ELSE (
+    set HOST_PYTHON=python.exe
+  )
+)
+%HOST_PYTHON% build_ssl.py %1 %2
+
diff --git a/PC/VS8.0/build.bat b/PC/VS8.0/build.bat
index a6d961e..9bc8186 100644
--- a/PC/VS8.0/build.bat
+++ b/PC/VS8.0/build.bat
@@ -1,17 +1,17 @@
-@echo off

-rem A batch program to build or rebuild a particular configuration.

-rem just for convenience.

-

-setlocal

-set platf=Win32

-set conf=Release

-set build=/build

-

-:CheckOpts

-if "%1"=="-c" (set conf=%2)     & shift & shift & goto CheckOpts

-if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts

-if "%1"=="-r" (set build=/rebuild)    & shift & goto CheckOpts

-

-set cmd=devenv pcbuild.sln %build% "%conf%|%platf%"

-echo %cmd%

-%cmd%

+@echo off
+rem A batch program to build or rebuild a particular configuration.
+rem just for convenience.
+
+setlocal
+set platf=Win32
+set conf=Release
+set build=/build
+
+:CheckOpts
+if "%1"=="-c" (set conf=%2)     & shift & shift & goto CheckOpts
+if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts
+if "%1"=="-r" (set build=/rebuild)    & shift & goto CheckOpts
+
+set cmd=devenv pcbuild.sln %build% "%conf%|%platf%"
+echo %cmd%
+%cmd%
diff --git a/PC/VS8.0/build_env.bat b/PC/VS8.0/build_env.bat
index 01024cf..4c67ae3 100644
--- a/PC/VS8.0/build_env.bat
+++ b/PC/VS8.0/build_env.bat
@@ -1 +1 @@
-@%comspec% /k env.bat %*

+@%comspec% /k env.bat %*
diff --git a/PC/VS8.0/build_pgo.bat b/PC/VS8.0/build_pgo.bat
index d28a767..a37b5bf 100644
--- a/PC/VS8.0/build_pgo.bat
+++ b/PC/VS8.0/build_pgo.bat
@@ -1,41 +1,41 @@
-@echo off

-rem A batch program to build PGO (Profile guided optimization) by first

-rem building instrumented binaries, then running the testsuite, and

-rem finally building the optimized code.

-rem Note, after the first instrumented run, one can just keep on

-rem building the PGUpdate configuration while developing.

-

-setlocal

-set platf=Win32

-

-rem use the performance testsuite.  This is quick and simple

-set job1=..\..\tools\pybench\pybench.py -n 1 -C 1 --with-gc

-set path1=..\..\tools\pybench

-

-rem or the whole testsuite for more thorough testing

-set job2=..\..\lib\test\regrtest.py

-set path2=..\..\lib

-

-set job=%job1%

-set clrpath=%path1%

-

-:CheckOpts

-if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts

-if "%1"=="-2" (set job=%job2%) & (set clrpath=%path2%) & shift & goto CheckOpts

-

-set PGI=%platf%-pgi

-set PGO=%platf%-pgo

-

-@echo on

-rem build the instrumented version

-call build -p %platf% -c PGInstrument

-

-rem remove .pyc files, .pgc files and execute the job

-%PGI%\python.exe rmpyc.py %clrpath%

-del %PGI%\*.pgc

-%PGI%\python.exe %job%

-

-rem finally build the optimized version

-if exist %PGO% del /s /q %PGO%

-call build -p %platf% -c PGUpdate

-

+@echo off
+rem A batch program to build PGO (Profile guided optimization) by first
+rem building instrumented binaries, then running the testsuite, and
+rem finally building the optimized code.
+rem Note, after the first instrumented run, one can just keep on
+rem building the PGUpdate configuration while developing.
+
+setlocal
+set platf=Win32
+
+rem use the performance testsuite.  This is quick and simple
+set job1=..\..\tools\pybench\pybench.py -n 1 -C 1 --with-gc
+set path1=..\..\tools\pybench
+
+rem or the whole testsuite for more thorough testing
+set job2=..\..\lib\test\regrtest.py
+set path2=..\..\lib
+
+set job=%job1%
+set clrpath=%path1%
+
+:CheckOpts
+if "%1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts
+if "%1"=="-2" (set job=%job2%) & (set clrpath=%path2%) & shift & goto CheckOpts
+
+set PGI=%platf%-pgi
+set PGO=%platf%-pgo
+
+@echo on
+rem build the instrumented version
+call build -p %platf% -c PGInstrument
+
+rem remove .pyc files, .pgc files and execute the job
+%PGI%\python.exe rmpyc.py %clrpath%
+del %PGI%\*.pgc
+%PGI%\python.exe %job%
+
+rem finally build the optimized version
+if exist %PGO% del /s /q %PGO%
+call build -p %platf% -c PGUpdate
+
diff --git a/PC/VS8.0/build_ssl.bat b/PC/VS8.0/build_ssl.bat
index 676f113..cb5a797 100644
--- a/PC/VS8.0/build_ssl.bat
+++ b/PC/VS8.0/build_ssl.bat
@@ -1,12 +1,12 @@
-@echo off

-if not defined HOST_PYTHON (

-  if %1 EQU Debug (

-    set HOST_PYTHON=python_d.exe

-    if not exist python26_d.dll exit 1

-  ) ELSE (

-    set HOST_PYTHON=python.exe

-    if not exist python26.dll exit 1

-  )

-)

-%HOST_PYTHON% build_ssl.py %1 %2 %3

-

+@echo off
+if not defined HOST_PYTHON (
+  if %1 EQU Debug (
+    set HOST_PYTHON=python_d.exe
+    if not exist python26_d.dll exit 1
+  ) ELSE (
+    set HOST_PYTHON=python.exe
+    if not exist python26.dll exit 1
+  )
+)
+%HOST_PYTHON% build_ssl.py %1 %2 %3
+
diff --git a/PC/VS8.0/env.bat b/PC/VS8.0/env.bat
index 7717d01..a4990a8 100644
--- a/PC/VS8.0/env.bat
+++ b/PC/VS8.0/env.bat
@@ -1,5 +1,5 @@
-@echo off

-set VS8=%ProgramFiles%\Microsoft Visual Studio 8

-echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64

-echo.

-call "%VS8%\VC\vcvarsall.bat" %1

+@echo off
+set VS8=%ProgramFiles%\Microsoft Visual Studio 8
+echo Build environments: x86, ia64, amd64, x86_amd64, x86_ia64
+echo.
+call "%VS8%\VC\vcvarsall.bat" %1
diff --git a/PC/VS8.0/idle.bat b/PC/VS8.0/idle.bat
index 274ae1a..123e704 100644
--- a/PC/VS8.0/idle.bat
+++ b/PC/VS8.0/idle.bat
@@ -1,15 +1,15 @@
-@echo off

-rem start idle

-rem Usage:  idle [-d]

-rem -d   Run Debug build (python_d.exe).  Else release build.

-

-setlocal

-set exe=python

-PATH %PATH%;..\..\..\tcltk\bin

-

-if "%1"=="-d" (set exe=python_d) & shift

-

-set cmd=%exe% ../../Lib/idlelib/idle.py %1 %2 %3 %4 %5 %6 %7 %8 %9

-

-echo on

-%cmd%

+@echo off
+rem start idle
+rem Usage:  idle [-d]
+rem -d   Run Debug build (python_d.exe).  Else release build.
+
+setlocal
+set exe=python
+PATH %PATH%;..\..\..\tcltk\bin
+
+if "%1"=="-d" (set exe=python_d) & shift
+
+set cmd=%exe% ../../Lib/idlelib/idle.py %1 %2 %3 %4 %5 %6 %7 %8 %9
+
+echo on
+%cmd%
diff --git a/PC/VS8.0/rt.bat b/PC/VS8.0/rt.bat
index 90fd794..767af76 100644
--- a/PC/VS8.0/rt.bat
+++ b/PC/VS8.0/rt.bat
@@ -1,52 +1,52 @@
-@echo off

-rem Run Tests.  Run the regression test suite.

-rem Usage:  rt [-d] [-O] [-q] regrtest_args

-rem -d   Run Debug build (python_d.exe).  Else release build.

-rem -O   Run python.exe or python_d.exe (see -d) with -O.

-rem -q   "quick" -- normally the tests are run twice, the first time

-rem      after deleting all the .py[co] files reachable from Lib/.

-rem      -q runs the tests just once, and without deleting .py[co] files.

-rem All leading instances of these switches are shifted off, and

-rem whatever remains is passed to regrtest.py.  For example,

-rem     rt -O -d -x test_thread

-rem runs

-rem     python_d -O ../lib/test/regrtest.py -x test_thread

-rem twice, and

-rem     rt -q -g test_binascii

-rem runs

-rem     python_d ../lib/test/regrtest.py -g test_binascii

-rem to generate the expected-output file for binascii quickly.

-rem

-rem Confusing:  if you want to pass a comma-separated list, like

-rem     -u network,largefile

-rem then you have to quote it on the rt line, like

-rem     rt -u "network,largefile"

-

-setlocal

-

-set exe=python

-set qmode=

-set dashO=

-PATH %PATH%;..\..\..\tcltk\bin

-

-:CheckOpts

-if "%1"=="-O" (set dashO=-O)     & shift & goto CheckOpts

-if "%1"=="-q" (set qmode=yes)    & shift & goto CheckOpts

-if "%1"=="-d" (set exe=python_d) & shift & goto CheckOpts

-

-set cmd=%exe% %dashO% -E -tt ../../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9

-if defined qmode goto Qmode

-

-echo Deleting .pyc/.pyo files ...

-%exe% rmpyc.py

-

-echo on

-%cmd%

-@echo off

-

-echo About to run again without deleting .pyc/.pyo first:

-pause

-

-:Qmode

-echo on

-%cmd%

+@echo off
+rem Run Tests.  Run the regression test suite.
+rem Usage:  rt [-d] [-O] [-q] regrtest_args
+rem -d   Run Debug build (python_d.exe).  Else release build.
+rem -O   Run python.exe or python_d.exe (see -d) with -O.
+rem -q   "quick" -- normally the tests are run twice, the first time
+rem      after deleting all the .py[co] files reachable from Lib/.
+rem      -q runs the tests just once, and without deleting .py[co] files.
+rem All leading instances of these switches are shifted off, and
+rem whatever remains is passed to regrtest.py.  For example,
+rem     rt -O -d -x test_thread
+rem runs
+rem     python_d -O ../lib/test/regrtest.py -x test_thread
+rem twice, and
+rem     rt -q -g test_binascii
+rem runs
+rem     python_d ../lib/test/regrtest.py -g test_binascii
+rem to generate the expected-output file for binascii quickly.
+rem
+rem Confusing:  if you want to pass a comma-separated list, like
+rem     -u network,largefile
+rem then you have to quote it on the rt line, like
+rem     rt -u "network,largefile"
+
+setlocal
+
+set exe=python
+set qmode=
+set dashO=
+PATH %PATH%;..\..\..\tcltk\bin
+
+:CheckOpts
+if "%1"=="-O" (set dashO=-O)     & shift & goto CheckOpts
+if "%1"=="-q" (set qmode=yes)    & shift & goto CheckOpts
+if "%1"=="-d" (set exe=python_d) & shift & goto CheckOpts
+
+set cmd=%exe% %dashO% -E -tt ../../lib/test/regrtest.py %1 %2 %3 %4 %5 %6 %7 %8 %9
+if defined qmode goto Qmode
+
+echo Deleting .pyc/.pyo files ...
+%exe% rmpyc.py
+
+echo on
+%cmd%
+@echo off
+
+echo About to run again without deleting .pyc/.pyo first:
+pause
+
+:Qmode
+echo on
+%cmd%
diff --git a/Tools/buildbot/build-amd64.bat b/Tools/buildbot/build-amd64.bat
index 8ec3328..5175c62 100644
--- a/Tools/buildbot/build-amd64.bat
+++ b/Tools/buildbot/build-amd64.bat
@@ -1,6 +1,6 @@
-@rem Used by the buildbot "compile" step.

-cmd /c Tools\buildbot\external-amd64.bat

-call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64

-cmd /c Tools\buildbot\clean-amd64.bat

-vcbuild /useenv PCbuild\kill_python.vcproj "Debug|x64" && PCbuild\amd64\kill_python_d.exe

-vcbuild PCbuild\pcbuild.sln "Debug|x64"

+@rem Used by the buildbot "compile" step.
+cmd /c Tools\buildbot\external-amd64.bat
+call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
+cmd /c Tools\buildbot\clean-amd64.bat
+vcbuild /useenv PCbuild\kill_python.vcproj "Debug|x64" && PCbuild\amd64\kill_python_d.exe
+vcbuild PCbuild\pcbuild.sln "Debug|x64"
diff --git a/Tools/buildbot/build.bat b/Tools/buildbot/build.bat
index 976ce72..ab3ea7d 100644
--- a/Tools/buildbot/build.bat
+++ b/Tools/buildbot/build.bat
@@ -1,7 +1,7 @@
-@rem Used by the buildbot "compile" step.

-cmd /c Tools\buildbot\external.bat

-call "%VS90COMNTOOLS%vsvars32.bat"

-cmd /c Tools\buildbot\clean.bat

-vcbuild /useenv PCbuild\kill_python.vcproj "Debug|Win32" && PCbuild\kill_python_d.exe

-vcbuild /useenv PCbuild\pcbuild.sln "Debug|Win32"

-

+@rem Used by the buildbot "compile" step.
+cmd /c Tools\buildbot\external.bat
+call "%VS90COMNTOOLS%vsvars32.bat"
+cmd /c Tools\buildbot\clean.bat
+vcbuild /useenv PCbuild\kill_python.vcproj "Debug|Win32" && PCbuild\kill_python_d.exe
+vcbuild /useenv PCbuild\pcbuild.sln "Debug|Win32"
+
diff --git a/Tools/buildbot/buildmsi.bat b/Tools/buildbot/buildmsi.bat
index 5fb458a..23f1535 100644
--- a/Tools/buildbot/buildmsi.bat
+++ b/Tools/buildbot/buildmsi.bat
@@ -1,20 +1,20 @@
-@rem Used by the buildbot "buildmsi" step.

-

-cmd /c Tools\buildbot\external.bat

-@rem build release versions of things

-call "%VS90COMNTOOLS%vsvars32.bat"

-

-@rem build Python

-vcbuild /useenv PCbuild\pcbuild.sln "Release|Win32"

-

-@rem build the documentation

-bash.exe -c 'cd Doc;make PYTHON=python2.5 update htmlhelp'

-"%ProgramFiles%\HTML Help Workshop\hhc.exe" Doc\build\htmlhelp\python26a3.hhp

-

-@rem buold the MSI file

-cd PC

-nmake /f icons.mak

-cd ..\Tools\msi

-del *.msi

-nmake /f msisupport.mak

-%HOST_PYTHON% msi.py

+@rem Used by the buildbot "buildmsi" step.
+
+cmd /c Tools\buildbot\external.bat
+@rem build release versions of things
+call "%VS90COMNTOOLS%vsvars32.bat"
+
+@rem build Python
+vcbuild /useenv PCbuild\pcbuild.sln "Release|Win32"
+
+@rem build the documentation
+bash.exe -c 'cd Doc;make PYTHON=python2.5 update htmlhelp'
+"%ProgramFiles%\HTML Help Workshop\hhc.exe" Doc\build\htmlhelp\python26a3.hhp
+
+@rem buold the MSI file
+cd PC
+nmake /f icons.mak
+cd ..\Tools\msi
+del *.msi
+nmake /f msisupport.mak
+%HOST_PYTHON% msi.py
diff --git a/Tools/buildbot/clean-amd64.bat b/Tools/buildbot/clean-amd64.bat
index 1ce1605..9fb35e9 100644
--- a/Tools/buildbot/clean-amd64.bat
+++ b/Tools/buildbot/clean-amd64.bat
@@ -1,7 +1,7 @@
-@rem Used by the buildbot "clean" step.

-call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64

-cd PCbuild

-@echo Deleting .pyc/.pyo files ...

-del /s Lib\*.pyc Lib\*.pyo

-vcbuild /clean pcbuild.sln "Release|x64"

-vcbuild /clean pcbuild.sln "Debug|x64"

+@rem Used by the buildbot "clean" step.
+call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
+cd PCbuild
+@echo Deleting .pyc/.pyo files ...
+del /s Lib\*.pyc Lib\*.pyo
+vcbuild /clean pcbuild.sln "Release|x64"
+vcbuild /clean pcbuild.sln "Debug|x64"
diff --git a/Tools/buildbot/clean.bat b/Tools/buildbot/clean.bat
index 0d4d12e..ec71804 100644
--- a/Tools/buildbot/clean.bat
+++ b/Tools/buildbot/clean.bat
@@ -1,7 +1,7 @@
-@rem Used by the buildbot "clean" step.

-call "%VS90COMNTOOLS%vsvars32.bat"

-@echo Deleting .pyc/.pyo files ...

-del /s Lib\*.pyc Lib\*.pyo

-cd PCbuild

-vcbuild /clean pcbuild.sln "Release|Win32"

-vcbuild /clean pcbuild.sln "Debug|Win32"

+@rem Used by the buildbot "clean" step.
+call "%VS90COMNTOOLS%vsvars32.bat"
+@echo Deleting .pyc/.pyo files ...
+del /s Lib\*.pyc Lib\*.pyo
+cd PCbuild
+vcbuild /clean pcbuild.sln "Release|Win32"
+vcbuild /clean pcbuild.sln "Debug|Win32"
diff --git a/Tools/buildbot/external-amd64.bat b/Tools/buildbot/external-amd64.bat
index 902e37a..e9c7011 100644
--- a/Tools/buildbot/external-amd64.bat
+++ b/Tools/buildbot/external-amd64.bat
@@ -1,20 +1,20 @@
-@rem Fetches (and builds if necessary) external dependencies

-

-@rem Assume we start inside the Python source directory

-call "Tools\buildbot\external-common.bat"

-call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64

-

-if not exist tcltk64\bin\tcl85g.dll (

-    cd tcl-8.5.2.1\win

-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all

-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install

-    cd ..\..

-)

-

-if not exist tcltk64\bin\tk85g.dll (

-    cd tk-8.5.2.0\win    

-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 clean

-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 all

-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 install

-    cd ..\..

-)

+@rem Fetches (and builds if necessary) external dependencies
+
+@rem Assume we start inside the Python source directory
+call "Tools\buildbot\external-common.bat"
+call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
+
+if not exist tcltk64\bin\tcl85g.dll (
+    cd tcl-8.5.2.1\win
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install
+    cd ..\..
+)
+
+if not exist tcltk64\bin\tk85g.dll (
+    cd tk-8.5.2.0\win    
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 clean
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 all
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 install
+    cd ..\..
+)
diff --git a/Tools/buildbot/external-common.bat b/Tools/buildbot/external-common.bat
index 839a4cd..c67efdf 100644
--- a/Tools/buildbot/external-common.bat
+++ b/Tools/buildbot/external-common.bat
@@ -1,45 +1,45 @@
-@rem Common file shared between external.bat and external-amd64.bat.  Responsible for

-@rem fetching external components into the root\.. buildbot directories.

-

-cd ..

-@rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment

-@rem the following, check it in, then check it out, comment it out, then check it back in.

-@rem if exist bzip2-1.0.5 rd /s/q bzip2-1.0.5

-@rem if exist tcltk rd /s/q tcltk

-@rem if exist tcltk64 rd /s/q tcltk64

-@rem if exist tcl8.4.12 rd /s/q tcl8.4.12

-@rem if exist tcl8.4.16 rd /s/q tcl8.4.16

-@rem if exist tcl-8.4.18.1 rd /s/q tcl-8.4.18.1

-@rem if exist tk8.4.12 rd /s/q tk8.4.12

-@rem if exist tk8.4.16 rd /s/q tk8.4.16

-@rem if exist tk-8.4.18.1 rd /s/q tk-8.4.18.1

-@rem if exist db-4.4.20 rd /s/q db-4.4.20

-@rem if exist db-4.7.25.0 rd /s/q db-4.7.25.0

-@rem if exist openssl-0.9.8l rd /s/q openssl-0.9.8l

-@rem if exist sqlite-3.5.9 rd /s/q sqlite-3.5.9    

-

-@rem bzip

-if not exist bzip2-1.0.5 (

-   rd /s/q bzip2-1.0.3

-  svn export http://svn.python.org/projects/external/bzip2-1.0.5

-)

-

-@rem Berkeley DB

-if exist db-4.4.20 rd /s/q db-4.4.20

-if not exist db-4.7.25.0 svn export http://svn.python.org/projects/external/db-4.7.25.0

-

-@rem OpenSSL

-if not exist openssl-0.9.8l svn export http://svn.python.org/projects/external/openssl-0.9.8l

-

-@rem tcl/tk

-if not exist tcl-8.5.2.1 (

-   rd /s/q tcltk tcltk64

-   svn export http://svn.python.org/projects/external/tcl-8.5.2.1

-)

-if not exist tk-8.5.2.0 svn export http://svn.python.org/projects/external/tk-8.5.2.0

-

-@rem sqlite3

-if not exist sqlite-3.5.9 (

-  rd /s/q sqlite-source-3.3.4

-  svn export http://svn.python.org/projects/external/sqlite-3.5.9

-)

+@rem Common file shared between external.bat and external-amd64.bat.  Responsible for
+@rem fetching external components into the root\.. buildbot directories.
+
+cd ..
+@rem XXX: If you need to force the buildbots to start from a fresh environment, uncomment
+@rem the following, check it in, then check it out, comment it out, then check it back in.
+@rem if exist bzip2-1.0.5 rd /s/q bzip2-1.0.5
+@rem if exist tcltk rd /s/q tcltk
+@rem if exist tcltk64 rd /s/q tcltk64
+@rem if exist tcl8.4.12 rd /s/q tcl8.4.12
+@rem if exist tcl8.4.16 rd /s/q tcl8.4.16
+@rem if exist tcl-8.4.18.1 rd /s/q tcl-8.4.18.1
+@rem if exist tk8.4.12 rd /s/q tk8.4.12
+@rem if exist tk8.4.16 rd /s/q tk8.4.16
+@rem if exist tk-8.4.18.1 rd /s/q tk-8.4.18.1
+@rem if exist db-4.4.20 rd /s/q db-4.4.20
+@rem if exist db-4.7.25.0 rd /s/q db-4.7.25.0
+@rem if exist openssl-0.9.8l rd /s/q openssl-0.9.8l
+@rem if exist sqlite-3.5.9 rd /s/q sqlite-3.5.9    
+
+@rem bzip
+if not exist bzip2-1.0.5 (
+   rd /s/q bzip2-1.0.3
+  svn export http://svn.python.org/projects/external/bzip2-1.0.5
+)
+
+@rem Berkeley DB
+if exist db-4.4.20 rd /s/q db-4.4.20
+if not exist db-4.7.25.0 svn export http://svn.python.org/projects/external/db-4.7.25.0
+
+@rem OpenSSL
+if not exist openssl-0.9.8l svn export http://svn.python.org/projects/external/openssl-0.9.8l
+
+@rem tcl/tk
+if not exist tcl-8.5.2.1 (
+   rd /s/q tcltk tcltk64
+   svn export http://svn.python.org/projects/external/tcl-8.5.2.1
+)
+if not exist tk-8.5.2.0 svn export http://svn.python.org/projects/external/tk-8.5.2.0
+
+@rem sqlite3
+if not exist sqlite-3.5.9 (
+  rd /s/q sqlite-source-3.3.4
+  svn export http://svn.python.org/projects/external/sqlite-3.5.9
+)
diff --git a/Tools/buildbot/external.bat b/Tools/buildbot/external.bat
index d6b18ae..d90e8ce 100644
--- a/Tools/buildbot/external.bat
+++ b/Tools/buildbot/external.bat
@@ -1,21 +1,21 @@
-@rem Fetches (and builds if necessary) external dependencies

-

-@rem Assume we start inside the Python source directory

-call "Tools\buildbot\external-common.bat"

-call "%VS90COMNTOOLS%\vsvars32.bat"

-

-if not exist tcltk\bin\tcl85g.dll (

-    @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install

-    cd tcl-8.5.2.1\win

-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all 

-    nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install

-    cd ..\..

-)

-

-if not exist tcltk\bin\tk85g.dll (

-    cd tk-8.5.2.0\win    

-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 clean

-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 all

-    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 install

-    cd ..\..

-)

+@rem Fetches (and builds if necessary) external dependencies
+
+@rem Assume we start inside the Python source directory
+call "Tools\buildbot\external-common.bat"
+call "%VS90COMNTOOLS%\vsvars32.bat"
+
+if not exist tcltk\bin\tcl85g.dll (
+    @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install
+    cd tcl-8.5.2.1\win
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all 
+    nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install
+    cd ..\..
+)
+
+if not exist tcltk\bin\tk85g.dll (
+    cd tk-8.5.2.0\win    
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 clean
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 all
+    nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 install
+    cd ..\..
+)
diff --git a/Tools/buildbot/test-amd64.bat b/Tools/buildbot/test-amd64.bat
index 6124b51..d178c92 100644
--- a/Tools/buildbot/test-amd64.bat
+++ b/Tools/buildbot/test-amd64.bat
@@ -1,3 +1,3 @@
-@rem Used by the buildbot "test" step.

-cd PCbuild

-call rt.bat -q -d -x64 -uall -rw

+@rem Used by the buildbot "test" step.
+cd PCbuild
+call rt.bat -q -d -x64 -uall -rw
diff --git a/Tools/buildbot/test.bat b/Tools/buildbot/test.bat
index 3764b43..c8b1937 100644
--- a/Tools/buildbot/test.bat
+++ b/Tools/buildbot/test.bat
@@ -1,3 +1,3 @@
-@rem Used by the buildbot "test" step.

-cd PCbuild

-call rt.bat -d -q -uall -rw

+@rem Used by the buildbot "test" step.
+cd PCbuild
+call rt.bat -d -q -uall -rw
diff --git a/Tools/msi/merge.py b/Tools/msi/merge.py
index def3964..85de209 100644
--- a/Tools/msi/merge.py
+++ b/Tools/msi/merge.py
@@ -1,84 +1,84 @@
-import msilib,os,win32com,tempfile,sys

-PCBUILD="PCBuild"

-certname = None

-from config import *

-

-Win64 = "amd64" in PCBUILD

-

-mod_dir = os.path.join(os.environ["ProgramFiles"], "Common Files", "Merge Modules")

-msi = None

-if len(sys.argv)==2:

-    msi = sys.argv[1]

-if Win64:

-    modules = ["Microsoft_VC90_CRT_x86_x64.msm", "policy_9_0_Microsoft_VC90_CRT_x86_x64.msm"]

-    if not msi: msi = "python-%s.amd64.msi" % full_current_version

-else:

-    modules = ["Microsoft_VC90_CRT_x86.msm","policy_9_0_Microsoft_VC90_CRT_x86.msm"]

-    if not msi: msi = "python-%s.msi" % full_current_version

-for i, n in enumerate(modules):

-    modules[i] = os.path.join(mod_dir, n)

-

-def merge(msi, feature, rootdir, modules):

-    cab_and_filecount = []

-    # Step 1: Merge databases, extract cabfiles

-    m = msilib.MakeMerge2()

-    m.OpenLog("merge.log")

-    print "Opened Log"

-    m.OpenDatabase(msi)

-    print "Opened DB"

-    for module in modules:

-        print module

-        m.OpenModule(module,0)

-        print "Opened Module",module

-        m.Merge(feature, rootdir)

-        print "Errors:"

-        for e in m.Errors:

-            print e.Type, e.ModuleTable, e.DatabaseTable

-            print "   Modkeys:",

-            for s in e.ModuleKeys: print s,

-            print

-            print "   DBKeys:",

-            for s in e.DatabaseKeys: print s,

-            print

-        cabname = tempfile.mktemp(suffix=".cab")

-        m.ExtractCAB(cabname)

-        cab_and_filecount.append((cabname, len(m.ModuleFiles)))

-        m.CloseModule()

-    m.CloseDatabase(True)

-    m.CloseLog()

-

-    # Step 2: Add CAB files

-    i = msilib.MakeInstaller()

-    db = i.OpenDatabase(msi, win32com.client.constants.msiOpenDatabaseModeTransact)

-

-    v = db.OpenView("SELECT LastSequence FROM Media")

-    v.Execute(None)

-    maxmedia = -1

-    while 1:

-        r = v.Fetch()

-        if not r: break

-        seq = r.IntegerData(1)

-        if seq > maxmedia:

-            maxmedia = seq

-    print "Start of Media", maxmedia

-

-    for cabname, count in cab_and_filecount:

-        stream = "merged%d" % maxmedia

-        msilib.add_data(db, "Media",

-                [(maxmedia+1, maxmedia+count, None, "#"+stream, None, None)])

-        msilib.add_stream(db, stream,  cabname)

-        os.unlink(cabname)

-        maxmedia += count

-    # The merge module sets ALLUSERS to 1 in the property table. 

-    # This is undesired; delete that

-    v = db.OpenView("DELETE FROM Property WHERE Property='ALLUSERS'")

-    v.Execute(None)

-    v.Close()

-    db.Commit()

-

-merge(msi, "SharedCRT", "TARGETDIR", modules)

-

-# certname (from config.py) should be (a substring of)

-# the certificate subject, e.g. "Python Software Foundation"

-if certname:

-    os.system('signtool sign /n "%s" /t http://timestamp.verisign.com/scripts/timestamp.dll %s' % (certname, msi))

+import msilib,os,win32com,tempfile,sys
+PCBUILD="PCBuild"
+certname = None
+from config import *
+
+Win64 = "amd64" in PCBUILD
+
+mod_dir = os.path.join(os.environ["ProgramFiles"], "Common Files", "Merge Modules")
+msi = None
+if len(sys.argv)==2:
+    msi = sys.argv[1]
+if Win64:
+    modules = ["Microsoft_VC90_CRT_x86_x64.msm", "policy_9_0_Microsoft_VC90_CRT_x86_x64.msm"]
+    if not msi: msi = "python-%s.amd64.msi" % full_current_version
+else:
+    modules = ["Microsoft_VC90_CRT_x86.msm","policy_9_0_Microsoft_VC90_CRT_x86.msm"]
+    if not msi: msi = "python-%s.msi" % full_current_version
+for i, n in enumerate(modules):
+    modules[i] = os.path.join(mod_dir, n)
+
+def merge(msi, feature, rootdir, modules):
+    cab_and_filecount = []
+    # Step 1: Merge databases, extract cabfiles
+    m = msilib.MakeMerge2()
+    m.OpenLog("merge.log")
+    print "Opened Log"
+    m.OpenDatabase(msi)
+    print "Opened DB"
+    for module in modules:
+        print module
+        m.OpenModule(module,0)
+        print "Opened Module",module
+        m.Merge(feature, rootdir)
+        print "Errors:"
+        for e in m.Errors:
+            print e.Type, e.ModuleTable, e.DatabaseTable
+            print "   Modkeys:",
+            for s in e.ModuleKeys: print s,
+            print
+            print "   DBKeys:",
+            for s in e.DatabaseKeys: print s,
+            print
+        cabname = tempfile.mktemp(suffix=".cab")
+        m.ExtractCAB(cabname)
+        cab_and_filecount.append((cabname, len(m.ModuleFiles)))
+        m.CloseModule()
+    m.CloseDatabase(True)
+    m.CloseLog()
+
+    # Step 2: Add CAB files
+    i = msilib.MakeInstaller()
+    db = i.OpenDatabase(msi, win32com.client.constants.msiOpenDatabaseModeTransact)
+
+    v = db.OpenView("SELECT LastSequence FROM Media")
+    v.Execute(None)
+    maxmedia = -1
+    while 1:
+        r = v.Fetch()
+        if not r: break
+        seq = r.IntegerData(1)
+        if seq > maxmedia:
+            maxmedia = seq
+    print "Start of Media", maxmedia
+
+    for cabname, count in cab_and_filecount:
+        stream = "merged%d" % maxmedia
+        msilib.add_data(db, "Media",
+                [(maxmedia+1, maxmedia+count, None, "#"+stream, None, None)])
+        msilib.add_stream(db, stream,  cabname)
+        os.unlink(cabname)
+        maxmedia += count
+    # The merge module sets ALLUSERS to 1 in the property table. 
+    # This is undesired; delete that
+    v = db.OpenView("DELETE FROM Property WHERE Property='ALLUSERS'")
+    v.Execute(None)
+    v.Close()
+    db.Commit()
+
+merge(msi, "SharedCRT", "TARGETDIR", modules)
+
+# certname (from config.py) should be (a substring of)
+# the certificate subject, e.g. "Python Software Foundation"
+if certname:
+    os.system('signtool sign /n "%s" /t http://timestamp.verisign.com/scripts/timestamp.dll %s' % (certname, msi))