Whitespace normalization, via reindent.py.
diff --git a/Tools/bgen/bgen/bgenBuffer.py b/Tools/bgen/bgen/bgenBuffer.py
index 4b888d7..ca7e026 100644
--- a/Tools/bgen/bgen/bgenBuffer.py
+++ b/Tools/bgen/bgen/bgenBuffer.py
@@ -27,7 +27,7 @@
 
 
 class FixedInputOutputBufferType(InputOnlyType):
-    
+
     """Fixed buffer -- passed as (inbuffer, outbuffer)."""
 
     def __init__(self, size, datatype = 'char', sizetype = 'int', sizeformat = None):
@@ -41,14 +41,14 @@
     def declare(self, name):
         self.declareBuffer(name)
         self.declareSize(name)
-    
+
     def declareBuffer(self, name):
         self.declareInputBuffer(name)
         self.declareOutputBuffer(name)
-    
+
     def declareInputBuffer(self, name):
         Output("%s *%s__in__;", self.datatype, name)
-    
+
     def declareOutputBuffer(self, name):
         Output("%s %s__out__[%s];", self.datatype, name, self.size)
 
@@ -61,7 +61,7 @@
 
     def getargsArgs(self, name):
         return "&%s__in__, &%s__in_len__" % (name, name)
-    
+
     def getargsCheck(self, name):
         Output("if (%s__in_len__ != %s)", name, self.size)
         OutLbrace()
@@ -71,19 +71,19 @@
         self.label_needed = 1
         OutRbrace()
         self.transferSize(name)
-    
+
     def transferSize(self, name):
         Output("%s__len__ = %s__in_len__;", name, name)
 
     def passOutput(self, name):
         return "%s__in__, %s__out__" % (name, name)
-    
+
     def mkvalueFormat(self):
         return "s#"
 
     def mkvalueArgs(self, name):
         return "%s__out__, (int)%s" % (name, self.size)
-    
+
     def cleanup(self, name):
         if self.label_needed:
             DedentLevel()
@@ -92,9 +92,9 @@
 
 
 class FixedCombinedInputOutputBufferType(FixedInputOutputBufferType):
-    
+
     """Like fixed buffer -- but same parameter is input and output."""
-    
+
     def passOutput(self, name):
         return "(%s *)memcpy(%s__out__, %s__in__, %s)" % \
             (self.datatype, name,   name,     self.size)
@@ -112,10 +112,10 @@
         pass
 
 class OptionalInputBufferMixIn:
-    
+
     """Add to input buffers if the buffer may be omitted: pass None in Python
     and the C code will get a NULL pointer and zero size"""
-    
+
     def getargsFormat(self):
         return "z#"
 
@@ -147,63 +147,63 @@
 class VarInputBufferType(FixedInputBufferType):
 
     """Variable size input buffer -- passed as (buffer, size).
-    
+
     Instantiate without size parameter.
     """
-    
+
     def __init__(self, datatype = 'char', sizetype = 'int', sizeformat = None):
         FixedInputBufferType.__init__(self, "0", datatype, sizetype, sizeformat)
-    
+
     def getargsCheck(self, name):
         Output("%s__len__ = %s__in_len__;", name, name)
-    
+
     def passInput(self, name):
         return "%s__in__, %s__len__" % (name, name)
-        
+
 class ReverseInputBufferMixin:
     """ Mixin for input buffers that are passed as (size, buffer) """
-    
+
     def passInput(self, name):
         return "%s__len__, %s__in__" % (name, name)
-        
+
 class OptionalVarInputBufferType(OptionalInputBufferMixIn, VarInputBufferType):
     pass
-    
+
 # ----- PART 2: Structure buffers -----
 
 
 class StructInputOutputBufferType(FixedInputOutputBufferType):
-    
+
     """Structure buffer -- passed as a structure pointer.
 
     Instantiate with the struct type as parameter.
     """
-    
+
     def __init__(self, type):
         FixedInputOutputBufferType.__init__(self, "sizeof(%s)" % type)
         self.typeName = self.type = type
-    
+
     def declareInputBuffer(self, name):
         Output("%s *%s__in__;", self.type, name)
-    
+
     def declareSize(self, name):
         Output("int %s__in_len__;", name)
-    
+
     def declareOutputBuffer(self, name):
         Output("%s %s__out__;", self.type, name)
-    
+
     def getargsArgs(self, name):
         return "(char **)&%s__in__, &%s__in_len__" % (name, name)
-    
+
     def transferSize(self, name):
         pass
-    
+
     def passInput(self, name):
         return "%s__in__" % name
-    
+
     def passOutput(self, name):
         return "%s__in__, &%s__out__" % (name, name)
-    
+
     def mkvalueArgs(self, name):
         return "(char *)&%s__out__, (int)%s" % (name, self.size)
 
@@ -211,7 +211,7 @@
 class StructCombinedInputOutputBufferType(StructInputOutputBufferType):
 
     """Like structure buffer -- but same parameter is input and output."""
-    
+
     def passOutput(self, name):
         return "(%s *)memcpy((char *)%s__out__, (char *)%s__in__, %s)" % \
             (self.type,          name,              name,     self.size)
@@ -242,7 +242,7 @@
 
     Instantiate with the struct type as parameter.
     """
-    
+
     def declareSize(self, name):
         pass
 
@@ -256,7 +256,7 @@
 
     Instantiate with the struct type as parameter.
     """
-    
+
     def declareSize(self, name):
         pass
 
diff --git a/Tools/bgen/bgen/bgenGenerator.py b/Tools/bgen/bgen/bgenGenerator.py
index f3cdfce..e1f240c 100644
--- a/Tools/bgen/bgen/bgenGenerator.py
+++ b/Tools/bgen/bgen/bgenGenerator.py
@@ -55,7 +55,7 @@
         docstring = self.docstring()
         if self.condition:
             Output()
-            Output(self.condition)      
+            Output(self.condition)
         Output("{\"%s\", (PyCFunction)%s_%s, 1,", name, self.prefix, self.name)
         Output(" PyDoc_STR(%s)},", stringify(docstring))
         if self.condition:
@@ -91,7 +91,7 @@
 
     def functionbody(self):
         Output("%s", self.body)
-        
+
     def setselftype(self, selftype, itselftype):
         self.objecttype = selftype
         self.itselftype = itselftype
@@ -114,7 +114,7 @@
             self.argumentList.append(self.rv)
         else:
             self.rv = None
-    
+
     def makereturnvar(self):
         return Variable(self.returntype, "_rv", OutMode)
 
@@ -129,7 +129,7 @@
             if name is None: name = "_arg%d" % iarg
             arg = Variable(type, name, mode)
             self.argumentList.append(arg)
-    
+
     def docstring(self):
         input = []
         output = []
@@ -146,7 +146,7 @@
                 else:
                     typeName = "?"
                     print "Nameless type", arg.type
-                    
+
                 str = typeName + ' ' + arg.name
             if arg.mode in (InMode, InOutMode):
                 input.append(str)
@@ -161,7 +161,7 @@
         else:
             outstr = "(%s)" % ", ".join(output)
         return instr + " -> " + outstr
-    
+
     def functionbody(self):
         self.declarations()
         self.precheck()
@@ -195,7 +195,7 @@
                 continue
             if arg.mode in (InMode, InOutMode):
                 arg.getargsCheck()
-    
+
     def precheck(self):
         pass
 
diff --git a/Tools/bgen/bgen/bgenHeapBuffer.py b/Tools/bgen/bgen/bgenHeapBuffer.py
index 9bfc5a1..64cf2a4 100644
--- a/Tools/bgen/bgen/bgenHeapBuffer.py
+++ b/Tools/bgen/bgen/bgenHeapBuffer.py
@@ -43,7 +43,7 @@
 class VarHeapInputOutputBufferType(HeapInputOutputBufferType):
 
     """same as base class, but passed as (inbuffer, outbuffer, &size)"""
-    
+
     def passOutput(self, name):
         return "%s__in__, %s__out__, &%s__len__" % (name, name, name)
 
@@ -51,7 +51,7 @@
 class HeapCombinedInputOutputBufferType(HeapInputOutputBufferType):
 
     """same as base class, but passed as (inoutbuffer, size)"""
-    
+
     def passOutput(self, name):
         return "(%s *)memcpy(%s__out__, %s__in__, %s__len__)" % \
             (self.datatype, name,   name,     name)
@@ -60,7 +60,7 @@
 class VarHeapCombinedInputOutputBufferType(HeapInputOutputBufferType):
 
     """same as base class, but passed as (inoutbuffer, &size)"""
-    
+
     def passOutput(self, name):
         return "(%s *)memcpy(%s__out__, %s__in__, &%s__len__)" % \
             (self.datatype, name,   name,      name)
@@ -73,16 +73,16 @@
     Instantiate without parameters.
     Call from Python with buffer size.
     """
-    
+
     def declareInputBuffer(self, name):
         pass
-    
+
     def getargsFormat(self):
         return "i"
-    
+
     def getargsArgs(self, name):
         return "&%s__in_len__" % name
-    
+
     def passOutput(self, name):
         return "%s__out__, %s__len__" % (name, name)
 
diff --git a/Tools/bgen/bgen/bgenModule.py b/Tools/bgen/bgen/bgenModule.py
index 3e26b16..d41aa05 100644
--- a/Tools/bgen/bgen/bgenModule.py
+++ b/Tools/bgen/bgen/bgenModule.py
@@ -38,7 +38,7 @@
         self.declareModuleVariables()
 
         GeneratorGroup.generate(self)
-        
+
         if self.finalstuff:
             Output()
             Output("%s", self.finalstuff)
diff --git a/Tools/bgen/bgen/bgenObjectDefinition.py b/Tools/bgen/bgen/bgenObjectDefinition.py
index 9c205e3..72e2678 100644
--- a/Tools/bgen/bgen/bgenObjectDefinition.py
+++ b/Tools/bgen/bgen/bgenObjectDefinition.py
@@ -9,14 +9,14 @@
 
     def __init__(self, name, prefix, itselftype):
         """ObjectDefinition constructor.  May be extended, but do not override.
-        
+
         - name: the object's official name, e.g. 'SndChannel'.
         - prefix: the prefix used for the object's functions and data, e.g. 'SndCh'.
         - itselftype: the C type actually contained in the object, e.g. 'SndChannelPtr'.
-        
+
         XXX For official Python data types, rules for the 'Py' prefix are a problem.
         """
-        
+
         GeneratorGroup.__init__(self, prefix or name)
         self.name = name
         self.itselftype = itselftype
@@ -35,7 +35,7 @@
     def reference(self):
         # In case we are referenced from a module
         pass
-        
+
     def setmodulename(self, name):
         self.modulename = name
 
@@ -58,7 +58,7 @@
         Output("} %s;", self.objecttype)
 
         self.outputNew()
-        
+
         self.outputConvert()
 
         self.outputDealloc()
@@ -71,19 +71,19 @@
         self.outputGetattr()
 
         self.outputSetattr()
-        
+
         self.outputCompare()
-        
+
         self.outputRepr()
-        
+
         self.outputHash()
-        
+
         self.outputPEP253Hooks()
-        
+
         self.outputTypeObject()
 
         OutHeader2("End object type " + self.name)
-        
+
     def outputMethodChain(self):
         Output("%sPyMethodChain %s_chain = { %s_methods, %s };",
                 self.static,    self.prefix, self.prefix, self.basechain)
@@ -108,10 +108,10 @@
 
     def outputInitStructMembers(self):
         Output("it->ob_itself = %sitself;", self.argref)
-    
+
     def outputCheckNewArg(self):
-            "Override this method to apply additional checks/conversions"
-    
+        "Override this method to apply additional checks/conversions"
+
     def outputConvert(self):
         Output("%sint %s_Convert(PyObject *v, %s *p_itself)", self.static, self.prefix,
                 self.itselftype)
@@ -206,7 +206,7 @@
         Output("(hashfunc) %s_hash, /*tp_hash*/", self.prefix)
         DedentLevel()
         Output("};")
-        
+
     def outputTypeObjectInitializer(self):
         Output("""%s.ob_type = &PyType_Type;""", self.typename)
         if self.basetype:
@@ -220,10 +220,10 @@
 
     def outputPEP253Hooks(self):
         pass
-        
+
 class PEP252Mixin:
     getsetlist = []
-    
+
     def assertions(self):
         # Check that various things aren't overridden. If they are it could
         # signify a bgen-client that has been partially converted to PEP252.
@@ -232,21 +232,21 @@
         assert self.outputGetattrBody == None
         assert self.outputGetattrHook == None
         assert self.basechain == "NULL"
-        
+
     def outputGetattr(self):
         pass
-        
+
     outputGetattrBody = None
 
     outputGetattrHook = None
 
     def outputSetattr(self):
         pass
-    
+
     def outputMethodChain(self):
         # This is a good place to output the getters and setters
         self.outputGetSetList()
-    
+
     def outputHook(self, name):
         methodname = "outputHook_" + name
         if hasattr(self, methodname):
@@ -254,7 +254,7 @@
             func()
         else:
             Output("0, /*%s*/", name)
-    
+
     def outputTypeObject(self):
         sf = self.static and "static "
         Output()
@@ -268,7 +268,7 @@
             Output("\"%s\", /*tp_name*/", self.name)
         Output("sizeof(%s), /*tp_basicsize*/", self.objecttype)
         Output("0, /*tp_itemsize*/")
-        
+
         Output("/* methods */")
         Output("(destructor) %s_dealloc, /*tp_dealloc*/", self.prefix)
         Output("0, /*tp_print*/")
@@ -276,17 +276,17 @@
         Output("(setattrfunc)0, /*tp_setattr*/")
         Output("(cmpfunc) %s_compare, /*tp_compare*/", self.prefix)
         Output("(reprfunc) %s_repr, /*tp_repr*/", self.prefix)
-        
+
         Output("(PyNumberMethods *)0, /* tp_as_number */")
         Output("(PySequenceMethods *)0, /* tp_as_sequence */")
         Output("(PyMappingMethods *)0, /* tp_as_mapping */")
-        
+
         Output("(hashfunc) %s_hash, /*tp_hash*/", self.prefix)
         self.outputHook("tp_call")
         Output("0, /*tp_str*/")
         Output("PyObject_GenericGetAttr, /*tp_getattro*/")
         Output("PyObject_GenericSetAttr, /*tp_setattro */")
-        
+
         self.outputHook("tp_as_buffer")
         Output("%s, /* tp_flags */", self.tp_flags)
         self.outputHook("tp_doc")
@@ -310,7 +310,7 @@
         self.outputHook("tp_free")
         DedentLevel()
         Output("};")
-        
+
     def outputGetSetList(self):
         if self.getsetlist:
             for name, get, set, doc in self.getsetlist:
@@ -324,7 +324,7 @@
                 else:
                     Output("#define %s_set_%s NULL", self.prefix, name)
                     Output()
-                    
+
             Output("static PyGetSetDef %s_getsetlist[] = {", self.prefix)
             IndentLevel()
             for name, get, set, doc in self.getsetlist:
@@ -332,7 +332,7 @@
                     doc = '"' + doc + '"'
                 else:
                     doc = "NULL"
-                Output("{\"%s\", (getter)%s_get_%s, (setter)%s_set_%s, %s},", 
+                Output("{\"%s\", (getter)%s_get_%s, (setter)%s_set_%s, %s},",
                     name, self.prefix, name, self.prefix, name, doc)
             Output("{NULL, NULL, NULL, NULL},")
             DedentLevel()
@@ -340,7 +340,7 @@
         else:
             Output("#define %s_getsetlist NULL", self.prefix)
         Output()
-            
+
     def outputGetter(self, name, code):
         Output("static PyObject *%s_get_%s(%s *self, void *closure)",
             self.prefix, name, self.objecttype)
@@ -348,7 +348,7 @@
         Output(code)
         OutRbrace()
         Output()
-        
+
     def outputSetter(self, name, code):
         Output("static int %s_set_%s(%s *self, PyObject *v, void *closure)",
             self.prefix, name, self.objecttype)
@@ -357,24 +357,24 @@
         Output("return 0;")
         OutRbrace()
         Output()
-        
+
 class PEP253Mixin(PEP252Mixin):
     tp_flags = "Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE"
-    
+
     def outputHook_tp_init(self):
         Output("%s_tp_init, /* tp_init */", self.prefix)
-        
+
     def outputHook_tp_alloc(self):
         Output("%s_tp_alloc, /* tp_alloc */", self.prefix)
-    
+
     def outputHook_tp_new(self):
         Output("%s_tp_new, /* tp_new */", self.prefix)
-        
+
     def outputHook_tp_free(self):
         Output("%s_tp_free, /* tp_free */", self.prefix)
-        
+
     output_tp_initBody = None
-    
+
     def output_tp_init(self):
         if self.output_tp_initBody:
             Output("static int %s_tp_init(PyObject *self, PyObject *args, PyObject *kwds)", self.prefix)
@@ -384,9 +384,9 @@
         else:
             Output("#define %s_tp_init 0", self.prefix)
         Output()
-        
+
     output_tp_allocBody = None
-    
+
     def output_tp_alloc(self):
         if self.output_tp_allocBody:
             Output("static PyObject *%s_tp_alloc(PyTypeObject *type, int nitems)",
@@ -397,7 +397,7 @@
         else:
             Output("#define %s_tp_alloc PyType_GenericAlloc", self.prefix)
         Output()
-        
+
     def output_tp_newBody(self):
         Output("PyObject *self;");
         Output("%s itself;", self.itselftype);
@@ -408,7 +408,7 @@
         Output("if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;")
         Output("((%s *)self)->ob_itself = itself;", self.objecttype)
         Output("return self;")
-    
+
     def output_tp_new(self):
         if self.output_tp_newBody:
             Output("static PyObject *%s_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)", self.prefix)
@@ -418,9 +418,9 @@
         else:
             Output("#define %s_tp_new PyType_GenericNew", self.prefix)
         Output()
-    
+
     output_tp_freeBody = None
-    
+
     def output_tp_free(self):
         if self.output_tp_freeBody:
             Output("static void %s_tp_free(PyObject *self)", self.prefix)
@@ -430,7 +430,7 @@
         else:
             Output("#define %s_tp_free PyObject_Del", self.prefix)
         Output()
-        
+
     def outputPEP253Hooks(self):
         self.output_tp_init()
         self.output_tp_alloc()
@@ -439,7 +439,7 @@
 
 class GlobalObjectDefinition(ObjectDefinition):
     """Like ObjectDefinition but exports some parts.
-    
+
     XXX Should also somehow generate a .h file for them.
     """
 
@@ -453,7 +453,7 @@
     be returned by library calls and it is difficult (or impossible) to find
     the corresponding Python objects. With this you can create Python object
     wrappers on the fly"""
-    
+
     def outputCompare(self):
         Output()
         Output("static int %s_compare(%s *self, %s *other)", self.prefix, self.objecttype,
@@ -475,12 +475,10 @@
         Output("if( v > w ) return 1;")
         Output("return 0;")
         OutRbrace()
-        
+
     def outputHash(self):
         Output()
         Output("static long %s_hash(%s *self)", self.prefix, self.objecttype)
         OutLbrace()
         Output("return (long)self->ob_itself;")
         OutRbrace()
-        
-
diff --git a/Tools/bgen/bgen/bgenOutput.py b/Tools/bgen/bgen/bgenOutput.py
index 304a52d..53d4f55 100644
--- a/Tools/bgen/bgen/bgenOutput.py
+++ b/Tools/bgen/bgen/bgenOutput.py
@@ -30,7 +30,7 @@
 
 def SetOutputFileName(filename = None):
     """Call this with a filename to make it the output file.
-    
+
     Call it without arguments to close the current file (if necessary)
     and reset it to sys.stdout.
     """
@@ -95,7 +95,7 @@
 
 def OutIndent(format = "", *args):
     """Combine Output() followed by IndentLevel().
-    
+
     If no text is given, acts like lone IndentLevel().
     """
     if format: VaOutput(format, args)
@@ -103,7 +103,7 @@
 
 def OutDedent(format = "", *args):
     """Combine Output() followed by DedentLevel().
-    
+
     If no text is given, acts like loneDedentLevel().
     """
     if format: VaOutput(format, args)
@@ -111,7 +111,7 @@
 
 def OutLbrace(format = "", *args):
     """Like Output, but add a '{' and increase the indentation level.
-    
+
     If no text is given a lone '{' is output.
     """
     if format:
@@ -143,13 +143,13 @@
 
 def Out(text):
     """Output multiline text that's internally indented.
-    
+
     Pass this a multiline character string.  The whitespace before the
     first nonblank line of the string will be subtracted from all lines.
     The lines are then output using Output(), but without interpretation
     of formatting (if you need formatting you can do it before the call).
     Recommended use:
-    
+
         Out('''
             int main(argc, argv)
                 int argc;
@@ -159,14 +159,14 @@
                 exit(0);
             }
         ''')
-    
+
     Caveat: the indentation must be consistent -- if you use three tabs
     in the first line, (up to) three tabs are removed from following lines,
     but a line beginning with 24 spaces is not trimmed at all.  Don't use
     this as a feature.
     """
     # (Don't you love using triple quotes *inside* triple quotes? :-)
-    
+
     lines = text.split('\n')
     indent = ""
     for line in lines:
@@ -193,7 +193,7 @@
     Out("""
         #include <Python.h>
         #include <stdio.h>
-    
+
         main(argc, argv)
             int argc;
             char **argv;
diff --git a/Tools/bgen/bgen/bgenStringBuffer.py b/Tools/bgen/bgen/bgenStringBuffer.py
index 39c8cf9..683bc0f 100644
--- a/Tools/bgen/bgen/bgenStringBuffer.py
+++ b/Tools/bgen/bgen/bgenStringBuffer.py
@@ -22,13 +22,13 @@
     pointer is returned.  These are actually easier (no allocation) but far
     less common.  I'll write the classes when there is demand.)
     """
-    
+
     def declareSize(self, name):
         pass
-    
+
     def getargsFormat(self):
         return "s"
-    
+
     def getargsArgs(self, name):
         return "&%s__in__" % name
 
diff --git a/Tools/bgen/bgen/bgenType.py b/Tools/bgen/bgen/bgenType.py
index aa87aee..4f3026a 100644
--- a/Tools/bgen/bgen/bgenType.py
+++ b/Tools/bgen/bgen/bgenType.py
@@ -204,8 +204,8 @@
             self.convert = arg + '_Convert'
         else:
             # Three arguments (name, new, convert)
-            self.new = arg 
-            self.convert = extra 
+            self.new = arg
+            self.convert = extra
 
     def getargsFormat(self):
         return "O&"
@@ -236,7 +236,7 @@
 
     def mkvalueArgs(self, name):
         return "%s, %s" % (self.new, name)
-        
+
 class OpaqueByValueStructType(OpaqueByValueType):
     """Similar to OpaqueByValueType, but we also pass this to mkvalue by
     address, in stead of by value.
diff --git a/Tools/bgen/bgen/macsupport.py b/Tools/bgen/bgen/macsupport.py
index eef6db8..7cd2b81 100644
--- a/Tools/bgen/bgen/macsupport.py
+++ b/Tools/bgen/bgen/macsupport.py
@@ -129,10 +129,10 @@
 
     def getargsFormat(self):
         return "u#"
-        
+
 class VarUnicodeReverseInputBufferType(ReverseInputBufferMixin, VarUnicodeInputBufferType):
     pass
-    
+
 UnicodeInBuffer = VarUnicodeInputBufferType('UniChar', 'UniCharCount', 'l')
 UnicodeReverseInBuffer = VarUnicodeReverseInputBufferType('UniChar', 'UniCharCount', 'l')
 UniChar_ptr = InputOnlyType("UniCharPtr", "u")
@@ -180,7 +180,7 @@
 
 class WeakLinkMixIn:
     "Mix-in to test the function actually exists (!= NULL) before calling"
-    
+
     def precheck(self):
         Output('#ifndef %s', self.name)
         Output('PyMac_PRECHECK(%s);', self.name)
diff --git a/Tools/bgen/bgen/scantools.py b/Tools/bgen/bgen/scantools.py
index 4afd7c8..df7ddfb 100644
--- a/Tools/bgen/bgen/scantools.py
+++ b/Tools/bgen/bgen/scantools.py
@@ -51,15 +51,15 @@
             self.setoutput(output, defsoutput)
         if input:
             self.setinput(input)
-    
+
     def initusedtypes(self):
         self.usedtypes = {}
-    
+
     def typeused(self, type, mode):
         if not self.usedtypes.has_key(type):
             self.usedtypes[type] = {}
         self.usedtypes[type][mode] = None
-    
+
     def reportusedtypes(self):
         types = self.usedtypes.keys()
         types.sort()
@@ -100,12 +100,12 @@
 
     def writeinitialdefs(self):
         pass
-        
+
     def initblacklists(self):
         self.blacklistnames = self.makeblacklistnames()
         self.blacklisttypes = ["unknown", "-"] + self.makeblacklisttypes()
         self.greydictnames = self.greylist2dict(self.makegreylist())
-        
+
     def greylist2dict(self, list):
         rv = {}
         for define, namelist in list:
@@ -118,7 +118,7 @@
 
     def makeblacklisttypes(self):
         return []
-        
+
     def makegreylist(self):
         return []
 
@@ -128,7 +128,7 @@
 
     def makerepairinstructions(self):
         """Parse the repair file into repair instructions.
-        
+
         The file format is simple:
         1) use \ to split a long logical line in multiple physical lines
         2) everything after the first # on a line is ignored (as comment)
@@ -216,10 +216,10 @@
                 replacements.append(replacement)
             list.append((fpat, patterns, replacements))
         return list
-        
+
     def makeinherentpointertypes(self):
         return []
-    
+
     def openrepairfile(self, filename = "REPAIR"):
         try:
             return open(filename, "rU")
@@ -337,7 +337,7 @@
             scan = [scan]
         self.allscaninputs = scan
         self._nextinput()
-        
+
     def _nextinput(self):
         if not self.allscaninputs:
             return 0
@@ -526,7 +526,7 @@
         type = type.strip()
         type = re.sub("[ \t]+", "_", type)
         return self.modifyarg(type, name, mode)
-    
+
     def modifyarg(self, type, name, mode):
         if type[:6] == "const_":
             type = type[6:]
@@ -567,7 +567,7 @@
             else: # No patterns match
                 i = i+1
         return arglist
-    
+
     def matcharg(self, patarg, arg):
         return len(filter(None, map(fnmatch.fnmatchcase, arg, patarg))) == 3
 
@@ -666,4 +666,3 @@
 
 if __name__ == '__main__':
     test()
-
diff --git a/Tools/compiler/astgen.py b/Tools/compiler/astgen.py
index 90201d3..08d501b 100644
--- a/Tools/compiler/astgen.py
+++ b/Tools/compiler/astgen.py
@@ -88,7 +88,7 @@
             self.args = self.args.replace('*', '')
             self.args = self.args.replace('!', '')
             self.args = self.args.replace('&', '')
-        
+
         return d
 
     def gen_source(self):
@@ -158,7 +158,7 @@
                 template = "        nodes.%s(%sself.%s%s)"
                 for name in self.argnames:
                     if self.argprops[name] == P_NONE:
-                        tmp = ("        if self.%s is not None:" 
+                        tmp = ("        if self.%s is not None:"
                                "            nodes.append(self.%s)")
                         print >> buf, tmp % (name, name)
                     elif self.argprops[name] == P_NESTED:
diff --git a/Tools/compiler/compile.py b/Tools/compiler/compile.py
index c1483c5..9d50425 100644
--- a/Tools/compiler/compile.py
+++ b/Tools/compiler/compile.py
@@ -39,7 +39,7 @@
                                 filename + ".prof")
                 else:
                     compileFile(filename, DISPLAY)
-                    
+
             except SyntaxError, err:
                 print err
                 if err.lineno is not None:
diff --git a/Tools/compiler/demo.py b/Tools/compiler/demo.py
index e9ada5a..61c54ee 100755
--- a/Tools/compiler/demo.py
+++ b/Tools/compiler/demo.py
@@ -14,7 +14,7 @@
     Each visit method takes two arguments, the node and its current
     scope.  The scope is the name of the current class or None.
     """
-    
+
     def visitClass(self, node, scope=None):
         self.visit(node.code, node.name)
 
@@ -22,7 +22,7 @@
         if scope is not None:
             print "%s.%s" % (scope, node.name)
         self.visit(node.code, None)
-            
+
 def main(files):
     mf = MethodFinder()
     for file in files:
@@ -34,5 +34,5 @@
 
 if __name__ == "__main__":
     import sys
-    
+
     main(sys.argv[1:])
diff --git a/Tools/faqwiz/faqconf.py b/Tools/faqwiz/faqconf.py
index ef01aa0..0057a93 100644
--- a/Tools/faqwiz/faqconf.py
+++ b/Tools/faqwiz/faqconf.py
@@ -30,11 +30,11 @@
 COOKIE_LIFETIME = 28*24*3600            # Cookie expiration in seconds
                                         # (28*24*3600 = 28 days = 4 weeks)
 PROCESS_PREFORMAT = 1                   # toggle whether preformatted text
-                                        # will replace urls and emails with 
+                                        # will replace urls and emails with
                                         # HTML links
 
 # Markers appended to title to indicate recently change
-# (may contain HTML, e.g. <IMG>); and corresponding 
+# (may contain HTML, e.g. <IMG>); and corresponding
 
 MARK_VERY_RECENT = " **"                # Changed very recently
 MARK_RECENT = " *"                      # Changed recently
diff --git a/Tools/faqwiz/faqwiz.py b/Tools/faqwiz/faqwiz.py
index a44da12..00cc65c 100644
--- a/Tools/faqwiz/faqwiz.py
+++ b/Tools/faqwiz/faqwiz.py
@@ -583,7 +583,7 @@
     def do_roulette(self):
         import random
         files = self.dir.list()
-        if not files: 
+        if not files:
             self.error("No entries.")
             return
         file = random.choice(files)
@@ -732,7 +732,7 @@
             emit(VERSIONCONFLICT, entry, self.ui)
             return
         commit_ok = ((not PASSWORD
-                      or self.ui.password == PASSWORD) 
+                      or self.ui.password == PASSWORD)
                      and self.ui.author
                      and '@' in self.ui.email
                      and self.ui.log)
@@ -820,7 +820,7 @@
         log("output: " + output)
         log("done: " + str(sts))
         log("TempFile:\n" + tf.read() + "end")
-        
+
         if not sts:
             self.prologue(T_COMMITTED)
             emit(COMMITTED)
diff --git a/Tools/framer/example.py b/Tools/framer/example.py
index b77f475..96f6278 100644
--- a/Tools/framer/example.py
+++ b/Tools/framer/example.py
@@ -11,7 +11,7 @@
     generality of StringIO, but it provides enough for most
     applications and is especially useful in conjunction with the
     pickle module.
-    
+
     Usage:
 
     from cStringIO import StringIO
@@ -20,7 +20,7 @@
     an_output_stream.write(some_stuff)
     ...
     value = an_output_stream.getvalue()
-    
+
     an_input_stream = StringIO(a_string)
     spam = an_input_stream.readline()
     spam = an_input_stream.read(5)
@@ -36,7 +36,7 @@
 
     class InputType(Type):
         "Simple type for treating strings as input file streams"
-        
+
         abbrev = "input"
 
         struct = """\
@@ -121,7 +121,6 @@
 
         def writelines(self, lines):
             """Write each string in lines."""
-        
+
 
 cStringIO.gen()
-
diff --git a/Tools/framer/framer/__init__.py b/Tools/framer/framer/__init__.py
index ab73a30..d8f9058 100644
--- a/Tools/framer/framer/__init__.py
+++ b/Tools/framer/framer/__init__.py
@@ -4,5 +4,3 @@
 using many of the new features introduced in Python 2.2.  It also
 takes a more declarative approach to generating code.
 """
-
-
diff --git a/Tools/framer/framer/bases.py b/Tools/framer/framer/bases.py
index 61052ab..fb3cb03 100644
--- a/Tools/framer/framer/bases.py
+++ b/Tools/framer/framer/bases.py
@@ -64,7 +64,7 @@
                 self.__types[name] = obj
                 if obj.has_members():
                     self.__members = True
-                    
+
     def initvars(self):
         v = self.__vars = {}
         filename = getattr(self, "__file__", None)
@@ -83,7 +83,7 @@
         if self.__members:
             p(template.member_include)
         print >> f
-        
+
         if self.__doc__:
             p(template.module_doc)
 
@@ -98,7 +98,7 @@
         p(template.module_init_start)
         for name, type in sortitems(self.__types):
             type.dump_init(f)
-            
+
         p("}")
 
 class Module:
@@ -121,7 +121,7 @@
 
         for name, func in sortitems(self.__methods):
             func.dump(f)
-            
+
         self.dump_methoddef(f, self.__methods, self.__vars)
         self.dump_memberdef(f)
         self.dump_slots(f)
@@ -199,7 +199,7 @@
             print >> f, templ % vars
 
         if self.struct:
-           p(template.dealloc_func, {"name" : self.__slots[TP_DEALLOC]})
+            p(template.dealloc_func, {"name" : self.__slots[TP_DEALLOC]})
 
         p(template.type_struct_start)
         for s in Slots[:-5]: # XXX
@@ -218,4 +218,3 @@
 
 class Type:
     __metaclass__ = TypeMetaclass
-
diff --git a/Tools/framer/framer/function.py b/Tools/framer/framer/function.py
index 595cc8d..306f7e9 100644
--- a/Tools/framer/framer/function.py
+++ b/Tools/framer/framer/function.py
@@ -55,7 +55,7 @@
 
     def dump_decls(self, f):
         pass
-        
+
 class NoArgs(_ArgumentList):
 
     def __init__(self, args):
@@ -67,7 +67,7 @@
         return "PyObject *self"
 
 class OneArg(_ArgumentList):
-    
+
     def __init__(self, args):
         assert len(args) == 1
         super(OneArg, self).__init__(args)
@@ -139,7 +139,7 @@
 
         if self.__doc__:
             p(template.docstring)
-            
+
         d = {"name" : self.vars["CName"],
              "args" : self.args.c_args(),
              }
@@ -149,13 +149,13 @@
 
         if self.args.ml_meth == METH_VARARGS:
             p(template.varargs)
-        
+
         p(template.funcdef_end)
 
     def analyze(self):
         self.__doc__ = self._func.__doc__
         self.args = ArgumentList(self._func, self.method)
-        
+
     def initvars(self):
         v = self.vars = {}
         v["PythonName"] = self._func.__name__
diff --git a/Tools/framer/framer/struct.py b/Tools/framer/framer/struct.py
index 3948740..12ea8d7 100644
--- a/Tools/framer/framer/struct.py
+++ b/Tools/framer/framer/struct.py
@@ -35,7 +35,7 @@
         line = line.strip()
         if line.startswith("}"):
             break
-        
+
         assert line.endswith(";")
         line = line[:-1]
         words = line.split()
diff --git a/Tools/framer/framer/structparse.py b/Tools/framer/framer/structparse.py
index 419228a..f24c0da 100644
--- a/Tools/framer/framer/structparse.py
+++ b/Tools/framer/framer/structparse.py
@@ -29,7 +29,7 @@
         line = line.strip()
         if line.startswith("}"):
             break
-        
+
         assert line.endswith(";")
         line = line[:-1]
         words = line.split()
diff --git a/Tools/framer/framer/template.py b/Tools/framer/framer/template.py
index 8d16204..41f9537 100644
--- a/Tools/framer/framer/template.py
+++ b/Tools/framer/framer/template.py
@@ -20,11 +20,11 @@
 
 methoddef_def = """\
         {"%(PythonName)s", (PyCFunction)%(CName)s, %(MethType)s},"""
-        
+
 methoddef_def_doc = """\
         {"%(PythonName)s", (PyCFunction)%(CName)s, %(MethType)s,
          %(DocstringVar)s},"""
-        
+
 methoddef_end = """\
         {NULL, NULL}
 };
@@ -96,7 +96,7 @@
 type_struct_start = """\
 static PyTypeObject %(CTypeName)s = {
         PyObject_HEAD_INIT(0)"""
-        
+
 type_struct_end = """\
 };
 """
diff --git a/Tools/freeze/bkfile.py b/Tools/freeze/bkfile.py
index d29716a..54af2fa 100644
--- a/Tools/freeze/bkfile.py
+++ b/Tools/freeze/bkfile.py
@@ -1,47 +1,47 @@
 _orig_open = open
 
 class _BkFile:
-	def __init__(self, file, mode, bufsize):
-		import os
-		self.__filename = file
-		self.__backup = file + '~'
-		try:
-			os.unlink(self.__backup)
-		except os.error:
-			pass
-		try:
-			os.rename(file, self.__backup)
-		except os.error:
-			self.__backup = None
-		self.__file = _orig_open(file, mode, bufsize)
-		self.closed = self.__file.closed
-		self.fileno = self.__file.fileno
-		self.flush = self.__file.flush
-		self.isatty = self.__file.isatty
-		self.mode = self.__file.mode
-		self.name = self.__file.name
-		self.read = self.__file.read
-		self.readinto = self.__file.readinto
-		self.readline = self.__file.readline
-		self.readlines = self.__file.readlines
-		self.seek = self.__file.seek
-		self.softspace = self.__file.softspace
-		self.tell = self.__file.tell
-		self.truncate = self.__file.truncate
-		self.write = self.__file.write
-		self.writelines = self.__file.writelines
+    def __init__(self, file, mode, bufsize):
+        import os
+        self.__filename = file
+        self.__backup = file + '~'
+        try:
+            os.unlink(self.__backup)
+        except os.error:
+            pass
+        try:
+            os.rename(file, self.__backup)
+        except os.error:
+            self.__backup = None
+        self.__file = _orig_open(file, mode, bufsize)
+        self.closed = self.__file.closed
+        self.fileno = self.__file.fileno
+        self.flush = self.__file.flush
+        self.isatty = self.__file.isatty
+        self.mode = self.__file.mode
+        self.name = self.__file.name
+        self.read = self.__file.read
+        self.readinto = self.__file.readinto
+        self.readline = self.__file.readline
+        self.readlines = self.__file.readlines
+        self.seek = self.__file.seek
+        self.softspace = self.__file.softspace
+        self.tell = self.__file.tell
+        self.truncate = self.__file.truncate
+        self.write = self.__file.write
+        self.writelines = self.__file.writelines
 
-	def close(self):
-		self.__file.close()
-		if self.__backup is None:
-			return
-		import filecmp
-		if filecmp.cmp(self.__backup, self.__filename, shallow = 0):
-			import os
-			os.unlink(self.__filename)
-			os.rename(self.__backup, self.__filename)
+    def close(self):
+        self.__file.close()
+        if self.__backup is None:
+            return
+        import filecmp
+        if filecmp.cmp(self.__backup, self.__filename, shallow = 0):
+            import os
+            os.unlink(self.__filename)
+            os.rename(self.__backup, self.__filename)
 
 def open(file, mode = 'r', bufsize = -1):
-	if 'w' not in mode:
-		return _orig_open(file, mode, bufsize)
-	return _BkFile(file, mode, bufsize)
+    if 'w' not in mode:
+        return _orig_open(file, mode, bufsize)
+    return _BkFile(file, mode, bufsize)
diff --git a/Tools/freeze/checkextensions.py b/Tools/freeze/checkextensions.py
index 584f8a6..334521f 100644
--- a/Tools/freeze/checkextensions.py
+++ b/Tools/freeze/checkextensions.py
@@ -6,85 +6,85 @@
 import parsesetup
 
 def checkextensions(unknown, extensions):
-	files = []
-	modules = []
-	edict = {}
-	for e in extensions:
-		setup = os.path.join(e, 'Setup')
-		liba = os.path.join(e, 'lib.a')
-		if not os.path.isfile(liba):
-			liba = None
-		edict[e] = parsesetup.getsetupinfo(setup), liba
-	for mod in unknown:
-		for e in extensions:
-			(mods, vars), liba = edict[e]
-			if not mods.has_key(mod):
-				continue
-			modules.append(mod)
-			if liba:
-				# If we find a lib.a, use it, ignore the
-				# .o files, and use *all* libraries for
-				# *all* modules in the Setup file
-				if liba in files:
-					break
-				files.append(liba)
-				for m in mods.keys():
-					files = files + select(e, mods, vars,
-							       m, 1)
-				break
-			files = files + select(e, mods, vars, mod, 0)
-			break
-	return files, modules
+    files = []
+    modules = []
+    edict = {}
+    for e in extensions:
+        setup = os.path.join(e, 'Setup')
+        liba = os.path.join(e, 'lib.a')
+        if not os.path.isfile(liba):
+            liba = None
+        edict[e] = parsesetup.getsetupinfo(setup), liba
+    for mod in unknown:
+        for e in extensions:
+            (mods, vars), liba = edict[e]
+            if not mods.has_key(mod):
+                continue
+            modules.append(mod)
+            if liba:
+                # If we find a lib.a, use it, ignore the
+                # .o files, and use *all* libraries for
+                # *all* modules in the Setup file
+                if liba in files:
+                    break
+                files.append(liba)
+                for m in mods.keys():
+                    files = files + select(e, mods, vars,
+                                           m, 1)
+                break
+            files = files + select(e, mods, vars, mod, 0)
+            break
+    return files, modules
 
 def select(e, mods, vars, mod, skipofiles):
-	files = []
-	for w in mods[mod]:
-		w = treatword(w)
-		if not w:
-			continue
-		w = expandvars(w, vars)
-		for w in w.split():
-			if skipofiles and w[-2:] == '.o':
-				continue
-			# Assume $var expands to absolute pathname
-			if w[0] not in ('-', '$') and w[-2:] in ('.o', '.a'):
-				w = os.path.join(e, w)
-			if w[:2] in ('-L', '-R') and w[2:3] != '$':
-				w = w[:2] + os.path.join(e, w[2:])
-			files.append(w)
-	return files
+    files = []
+    for w in mods[mod]:
+        w = treatword(w)
+        if not w:
+            continue
+        w = expandvars(w, vars)
+        for w in w.split():
+            if skipofiles and w[-2:] == '.o':
+                continue
+            # Assume $var expands to absolute pathname
+            if w[0] not in ('-', '$') and w[-2:] in ('.o', '.a'):
+                w = os.path.join(e, w)
+            if w[:2] in ('-L', '-R') and w[2:3] != '$':
+                w = w[:2] + os.path.join(e, w[2:])
+            files.append(w)
+    return files
 
 cc_flags = ['-I', '-D', '-U']
 cc_exts = ['.c', '.C', '.cc', '.c++']
 
 def treatword(w):
-	if w[:2] in cc_flags:
-		return None
-	if w[:1] == '-':
-		return w # Assume loader flag
-	head, tail = os.path.split(w)
-	base, ext = os.path.splitext(tail)
-	if ext in cc_exts:
-		tail = base + '.o'
-		w = os.path.join(head, tail)
-	return w
+    if w[:2] in cc_flags:
+        return None
+    if w[:1] == '-':
+        return w # Assume loader flag
+    head, tail = os.path.split(w)
+    base, ext = os.path.splitext(tail)
+    if ext in cc_exts:
+        tail = base + '.o'
+        w = os.path.join(head, tail)
+    return w
 
 def expandvars(str, vars):
-	i = 0
-	while i < len(str):
-		i = k = str.find('$', i)
-		if i < 0:
-			break
-		i = i+1
-		var = str[i:i+1]
-		i = i+1
-		if var == '(':
-			j = str.find(')', i)
-			if j < 0:
-				break
-			var = str[i:j]
-			i = j+1
-		if vars.has_key(var):
-			str = str[:k] + vars[var] + str[i:]
-			i = k
-	return str
+    i = 0
+    while i < len(str):
+        i = k = str.find('$', i)
+        if i < 0:
+            break
+        i = i+1
+        var = str[i:i+1]
+        i = i+1
+        if var == '(':
+            j = str.find(')', i)
+            if j < 0:
+                break
+            var = str[i:j]
+            i = j+1
+        if vars.has_key(var):
+            str = str[:k] + vars[var] + str[i:]
+            i = k
+    return str
diff --git a/Tools/freeze/checkextensions_win32.py b/Tools/freeze/checkextensions_win32.py
index 9a7a6dc..a198ecf 100644
--- a/Tools/freeze/checkextensions_win32.py
+++ b/Tools/freeze/checkextensions_win32.py
@@ -24,142 +24,142 @@
 
 import os, sys
 try:
-	import win32api
+    import win32api
 except ImportError:
-	win32api = None # User has already been warned
+    win32api = None # User has already been warned
 
 class CExtension:
-	"""An abstraction of an extension implemented in C/C++
-	"""
-	def __init__(self, name, sourceFiles):
-		self.name = name
-		# A list of strings defining additional compiler options.
-		self.sourceFiles = sourceFiles
-		# A list of special compiler options to be applied to
-		# all source modules in this extension.
-		self.compilerOptions = []
-		# A list of .lib files the final .EXE will need.
-		self.linkerLibs = []
+    """An abstraction of an extension implemented in C/C++
+    """
+    def __init__(self, name, sourceFiles):
+        self.name = name
+        # A list of strings defining additional compiler options.
+        self.sourceFiles = sourceFiles
+        # A list of special compiler options to be applied to
+        # all source modules in this extension.
+        self.compilerOptions = []
+        # A list of .lib files the final .EXE will need.
+        self.linkerLibs = []
 
-	def GetSourceFiles(self):
-		return self.sourceFiles
+    def GetSourceFiles(self):
+        return self.sourceFiles
 
-	def AddCompilerOption(self, option):
-		self.compilerOptions.append(option)
-	def GetCompilerOptions(self):
-		return self.compilerOptions
+    def AddCompilerOption(self, option):
+        self.compilerOptions.append(option)
+    def GetCompilerOptions(self):
+        return self.compilerOptions
 
-	def AddLinkerLib(self, lib):
-		self.linkerLibs.append(lib)
-	def GetLinkerLibs(self):
-		return self.linkerLibs
+    def AddLinkerLib(self, lib):
+        self.linkerLibs.append(lib)
+    def GetLinkerLibs(self):
+        return self.linkerLibs
 
 def checkextensions(unknown, extra_inis, prefix):
-        # Create a table of frozen extensions
+    # Create a table of frozen extensions
 
-	defaultMapName = os.path.join( os.path.split(sys.argv[0])[0], "extensions_win32.ini")
-	if not os.path.isfile(defaultMapName):
-		sys.stderr.write("WARNING: %s can not be found - standard extensions may not be found\n" % defaultMapName)
-	else:
-		# must go on end, so other inis can override.
-		extra_inis.append(defaultMapName)
+    defaultMapName = os.path.join( os.path.split(sys.argv[0])[0], "extensions_win32.ini")
+    if not os.path.isfile(defaultMapName):
+        sys.stderr.write("WARNING: %s can not be found - standard extensions may not be found\n" % defaultMapName)
+    else:
+        # must go on end, so other inis can override.
+        extra_inis.append(defaultMapName)
 
-	ret = []
-	for mod in unknown:
-		for ini in extra_inis:
-#			print "Looking for", mod, "in", win32api.GetFullPathName(ini),"...",
-			defn = get_extension_defn( mod, ini, prefix )
-			if defn is not None:
-#				print "Yay - found it!"
-				ret.append( defn )
-				break
-#			print "Nope!"
-		else: # For not broken!
-			sys.stderr.write("No definition of module %s in any specified map file.\n" % (mod))
-		
-	return ret
+    ret = []
+    for mod in unknown:
+        for ini in extra_inis:
+#                       print "Looking for", mod, "in", win32api.GetFullPathName(ini),"...",
+            defn = get_extension_defn( mod, ini, prefix )
+            if defn is not None:
+#                               print "Yay - found it!"
+                ret.append( defn )
+                break
+#                       print "Nope!"
+        else: # For not broken!
+            sys.stderr.write("No definition of module %s in any specified map file.\n" % (mod))
+
+    return ret
 
 def get_extension_defn(moduleName, mapFileName, prefix):
-	if win32api is None: return None
-	os.environ['PYTHONPREFIX'] = prefix
-	dsp = win32api.GetProfileVal(moduleName, "dsp", "", mapFileName)
-	if dsp=="":
-		return None
+    if win32api is None: return None
+    os.environ['PYTHONPREFIX'] = prefix
+    dsp = win32api.GetProfileVal(moduleName, "dsp", "", mapFileName)
+    if dsp=="":
+        return None
 
-	# We allow environment variables in the file name
-	dsp = win32api.ExpandEnvironmentStrings(dsp)
-	# If the path to the .DSP file is not absolute, assume it is relative
-	# to the description file.
-	if not os.path.isabs(dsp):
-		dsp = os.path.join( os.path.split(mapFileName)[0], dsp)
-	# Parse it to extract the source files.
-	sourceFiles = parse_dsp(dsp)
-	if sourceFiles is None:
-		return None
+    # We allow environment variables in the file name
+    dsp = win32api.ExpandEnvironmentStrings(dsp)
+    # If the path to the .DSP file is not absolute, assume it is relative
+    # to the description file.
+    if not os.path.isabs(dsp):
+        dsp = os.path.join( os.path.split(mapFileName)[0], dsp)
+    # Parse it to extract the source files.
+    sourceFiles = parse_dsp(dsp)
+    if sourceFiles is None:
+        return None
 
-	module = CExtension(moduleName, sourceFiles)
-	# Put the path to the DSP into the environment so entries can reference it.
-	os.environ['dsp_path'] = os.path.split(dsp)[0]
-	os.environ['ini_path'] = os.path.split(mapFileName)[0]
+    module = CExtension(moduleName, sourceFiles)
+    # Put the path to the DSP into the environment so entries can reference it.
+    os.environ['dsp_path'] = os.path.split(dsp)[0]
+    os.environ['ini_path'] = os.path.split(mapFileName)[0]
 
-	cl_options = win32api.GetProfileVal(moduleName, "cl", "", mapFileName)
-	if cl_options:
-		module.AddCompilerOption(win32api.ExpandEnvironmentStrings(cl_options))
+    cl_options = win32api.GetProfileVal(moduleName, "cl", "", mapFileName)
+    if cl_options:
+        module.AddCompilerOption(win32api.ExpandEnvironmentStrings(cl_options))
 
-	exclude = win32api.GetProfileVal(moduleName, "exclude", "", mapFileName)
-	exclude = exclude.split()
+    exclude = win32api.GetProfileVal(moduleName, "exclude", "", mapFileName)
+    exclude = exclude.split()
 
-	if win32api.GetProfileVal(moduleName, "Unicode", 0, mapFileName):
-		module.AddCompilerOption('/D UNICODE /D _UNICODE')
+    if win32api.GetProfileVal(moduleName, "Unicode", 0, mapFileName):
+        module.AddCompilerOption('/D UNICODE /D _UNICODE')
 
-	libs = win32api.GetProfileVal(moduleName, "libs", "", mapFileName).split()
-	for lib in libs:
-		module.AddLinkerLib(win32api.ExpandEnvironmentStrings(lib))
+    libs = win32api.GetProfileVal(moduleName, "libs", "", mapFileName).split()
+    for lib in libs:
+        module.AddLinkerLib(win32api.ExpandEnvironmentStrings(lib))
 
-	for exc in exclude:
-		if exc in module.sourceFiles:
-			modules.sourceFiles.remove(exc)
+    for exc in exclude:
+        if exc in module.sourceFiles:
+            modules.sourceFiles.remove(exc)
 
-	return module	
+    return module
 
 # Given an MSVC DSP file, locate C source files it uses
 # returns a list of source files.
 def parse_dsp(dsp):
-#	print "Processing", dsp
-	# For now, only support 
-	ret = []
-	dsp_path, dsp_name = os.path.split(dsp)
-	try:
-		lines = open(dsp, "r").readlines()
-	except IOError, msg:
-		sys.stderr.write("%s: %s\n" % (dsp, msg))
-		return None
-	for line in lines:
-		fields = line.strip().split("=", 2)
-		if fields[0]=="SOURCE":
-			if os.path.splitext(fields[1])[1].lower() in ['.cpp', '.c']:
-				ret.append( win32api.GetFullPathName(os.path.join(dsp_path, fields[1] ) ) )
-	return ret
+#       print "Processing", dsp
+    # For now, only support
+    ret = []
+    dsp_path, dsp_name = os.path.split(dsp)
+    try:
+        lines = open(dsp, "r").readlines()
+    except IOError, msg:
+        sys.stderr.write("%s: %s\n" % (dsp, msg))
+        return None
+    for line in lines:
+        fields = line.strip().split("=", 2)
+        if fields[0]=="SOURCE":
+            if os.path.splitext(fields[1])[1].lower() in ['.cpp', '.c']:
+                ret.append( win32api.GetFullPathName(os.path.join(dsp_path, fields[1] ) ) )
+    return ret
 
 def write_extension_table(fname, modules):
-	fp = open(fname, "w")
-	try:
-		fp.write (ext_src_header)
-		# Write fn protos
-		for module in modules:
-			# bit of a hack for .pyd's as part of packages.
-			name = module.name.split('.')[-1]
-			fp.write('extern void init%s(void);\n' % (name) )
-		# Write the table
-		fp.write (ext_tab_header)
-		for module in modules:
-			name = module.name.split('.')[-1]
-			fp.write('\t{"%s", init%s},\n' % (name, name) )
+    fp = open(fname, "w")
+    try:
+        fp.write (ext_src_header)
+        # Write fn protos
+        for module in modules:
+            # bit of a hack for .pyd's as part of packages.
+            name = module.name.split('.')[-1]
+            fp.write('extern void init%s(void);\n' % (name) )
+        # Write the table
+        fp.write (ext_tab_header)
+        for module in modules:
+            name = module.name.split('.')[-1]
+            fp.write('\t{"%s", init%s},\n' % (name, name) )
 
-		fp.write (ext_tab_footer)
-		fp.write(ext_src_footer)
-	finally:
-		fp.close()
+        fp.write (ext_tab_footer)
+        fp.write(ext_src_footer)
+    finally:
+        fp.close()
 
 
 ext_src_header = """\
@@ -182,9 +182,7 @@
 
 int PyInitFrozenExtensions()
 {
-	return PyImport_ExtendInittab(extensions);
+        return PyImport_ExtendInittab(extensions);
 }
 
 """
-
-
diff --git a/Tools/freeze/freeze.py b/Tools/freeze/freeze.py
index c2c3c2e..836f532 100755
--- a/Tools/freeze/freeze.py
+++ b/Tools/freeze/freeze.py
@@ -57,15 +57,15 @@
               are read and the -i option replaced with the parsed
               params (note - quoting args in this file is NOT supported)
 
--s subsystem: Specify the subsystem (For Windows only.); 
+-s subsystem: Specify the subsystem (For Windows only.);
               'console' (default), 'windows', 'service' or 'com_dll'
-              
+
 -w:           Toggle Windows (NT or 95) behavior.
               (For debugging only -- on a win32 platform, win32 behavior
               is automatic.)
 
 -r prefix=f:  Replace path prefix.
-              Replace prefix with f in the source path references 
+              Replace prefix with f in the source path references
               contained in the resulting binary.
 
 Arguments:
@@ -335,7 +335,7 @@
                 winmakemakefile.get_custom_entry_point(subsystem)
         except ValueError, why:
             usage(why)
-            
+
 
     # Actual work starts here...
 
@@ -343,7 +343,7 @@
     dir = os.path.dirname(scriptfile)
     path[0] = dir
     mf = modulefinder.ModuleFinder(path, debug, exclude, replace_paths)
-    
+
     if win and subsystem=='service':
         # If a Windows service, then add the "built-in" module.
         mod = mf.add_module("servicemanager")
@@ -411,7 +411,7 @@
         else:
             # Do the windows thang...
             import checkextensions_win32
-            # Get a list of CExtension instances, each describing a module 
+            # Get a list of CExtension instances, each describing a module
             # (including its source files)
             frozen_extensions = checkextensions_win32.checkextensions(
                 unknown, extensions, prefix)
diff --git a/Tools/freeze/makeconfig.py b/Tools/freeze/makeconfig.py
index 2f04ac7..7cd9b78 100644
--- a/Tools/freeze/makeconfig.py
+++ b/Tools/freeze/makeconfig.py
@@ -6,56 +6,56 @@
 never = ['marshal', '__main__', '__builtin__', 'sys', 'exceptions']
 
 def makeconfig(infp, outfp, modules, with_ifdef=0):
-	m1 = re.compile('-- ADDMODULE MARKER 1 --')
-	m2 = re.compile('-- ADDMODULE MARKER 2 --')
-	while 1:
-		line = infp.readline()
-		if not line: break
-		outfp.write(line)
-		if m1 and m1.search(line):
-			m1 = None
-			for mod in modules:
-				if mod in never:
-					continue
-				if with_ifdef:
-					outfp.write("#ifndef init%s\n"%mod)
-				outfp.write('extern void init%s(void);\n' % mod)
-				if with_ifdef:
-					outfp.write("#endif\n")
-		elif m2 and m2.search(line):
-			m2 = None
-			for mod in modules:
-				if mod in never:
-					continue
-				outfp.write('\t{"%s", init%s},\n' %
-					    (mod, mod))
-	if m1:
-		sys.stderr.write('MARKER 1 never found\n')
-	elif m2:
-		sys.stderr.write('MARKER 2 never found\n')
+    m1 = re.compile('-- ADDMODULE MARKER 1 --')
+    m2 = re.compile('-- ADDMODULE MARKER 2 --')
+    while 1:
+        line = infp.readline()
+        if not line: break
+        outfp.write(line)
+        if m1 and m1.search(line):
+            m1 = None
+            for mod in modules:
+                if mod in never:
+                    continue
+                if with_ifdef:
+                    outfp.write("#ifndef init%s\n"%mod)
+                outfp.write('extern void init%s(void);\n' % mod)
+                if with_ifdef:
+                    outfp.write("#endif\n")
+        elif m2 and m2.search(line):
+            m2 = None
+            for mod in modules:
+                if mod in never:
+                    continue
+                outfp.write('\t{"%s", init%s},\n' %
+                            (mod, mod))
+    if m1:
+        sys.stderr.write('MARKER 1 never found\n')
+    elif m2:
+        sys.stderr.write('MARKER 2 never found\n')
 
 
 # Test program.
 
 def test():
-	import sys
-	if not sys.argv[3:]:
-		print 'usage: python makeconfig.py config.c.in outputfile',
-		print 'modulename ...'
-		sys.exit(2)
-	if sys.argv[1] == '-':
-		infp = sys.stdin
-	else:
-		infp = open(sys.argv[1])
-	if sys.argv[2] == '-':
-		outfp = sys.stdout
-	else:
-		outfp = open(sys.argv[2], 'w')
-	makeconfig(infp, outfp, sys.argv[3:])
-	if outfp != sys.stdout:
-		outfp.close()
-	if infp != sys.stdin:
-		infp.close()
+    import sys
+    if not sys.argv[3:]:
+        print 'usage: python makeconfig.py config.c.in outputfile',
+        print 'modulename ...'
+        sys.exit(2)
+    if sys.argv[1] == '-':
+        infp = sys.stdin
+    else:
+        infp = open(sys.argv[1])
+    if sys.argv[2] == '-':
+        outfp = sys.stdout
+    else:
+        outfp = open(sys.argv[2], 'w')
+    makeconfig(infp, outfp, sys.argv[3:])
+    if outfp != sys.stdout:
+        outfp.close()
+    if infp != sys.stdin:
+        infp.close()
 
 if __name__ == '__main__':
-	test()
+    test()
diff --git a/Tools/freeze/makefreeze.py b/Tools/freeze/makefreeze.py
index 9ff348c..1208b67 100644
--- a/Tools/freeze/makefreeze.py
+++ b/Tools/freeze/makefreeze.py
@@ -19,7 +19,7 @@
 int
 main(int argc, char **argv)
 {
-	extern int Py_FrozenMain(int, char **);
+        extern int Py_FrozenMain(int, char **);
 """ + ((not __debug__ and """
         Py_OptimizeFlag++;
 """) or "")  + """
diff --git a/Tools/freeze/makemakefile.py b/Tools/freeze/makemakefile.py
index b8b99b8..ff8b15a 100644
--- a/Tools/freeze/makemakefile.py
+++ b/Tools/freeze/makemakefile.py
@@ -23,7 +23,7 @@
             deps.append(dest)
 
     outfp.write("\n%s: %s\n" % (target, ' '.join(deps)))
-    outfp.write("\t$(LINKCC) $(LDFLAGS) $(LINKFORSHARED) %s -o %s $(LDLAST)\n" % 
+    outfp.write("\t$(LINKCC) $(LDFLAGS) $(LINKFORSHARED) %s -o %s $(LDLAST)\n" %
                 (' '.join(files), target))
 
     outfp.write("\nclean:\n\t-rm -f *.o %s\n" % target)
diff --git a/Tools/freeze/parsesetup.py b/Tools/freeze/parsesetup.py
index 2b9123e..856234d 100644
--- a/Tools/freeze/parsesetup.py
+++ b/Tools/freeze/parsesetup.py
@@ -10,32 +10,32 @@
 makevardef = re.compile('^([a-zA-Z0-9_]+)[ \t]*=(.*)')
 
 def getmakevars(filename):
-	variables = {}
-	fp = open(filename)
-	pendingline = ""
-	try:
-		while 1:
-			line = fp.readline()
-			if pendingline:
-				line = pendingline + line
-				pendingline = ""
-			if not line:
-				break
-			if line.endswith('\\\n'):
-				pendingline = line[:-2]
-			matchobj = makevardef.match(line)
-			if not matchobj:
-				continue
-			(name, value) = matchobj.group(1, 2)
-			# Strip trailing comment
-			i = value.find('#')
-			if i >= 0:
-				value = value[:i]
-			value = value.strip()
-			variables[name] = value
-	finally:
-		fp.close()
-	return variables
+    variables = {}
+    fp = open(filename)
+    pendingline = ""
+    try:
+        while 1:
+            line = fp.readline()
+            if pendingline:
+                line = pendingline + line
+                pendingline = ""
+            if not line:
+                break
+            if line.endswith('\\\n'):
+                pendingline = line[:-2]
+            matchobj = makevardef.match(line)
+            if not matchobj:
+                continue
+            (name, value) = matchobj.group(1, 2)
+            # Strip trailing comment
+            i = value.find('#')
+            if i >= 0:
+                value = value[:i]
+            value = value.strip()
+            variables[name] = value
+    finally:
+        fp.close()
+    return variables
 
 
 # Parse a Python Setup(.in) file.
@@ -46,67 +46,67 @@
 setupvardef = re.compile('^([a-zA-Z0-9_]+)=(.*)')
 
 def getsetupinfo(filename):
-	modules = {}
-	variables = {}
-	fp = open(filename)
-	pendingline = ""
-	try:
-		while 1:
-			line = fp.readline()
-			if pendingline:
-				line = pendingline + line
-				pendingline = ""
-			if not line:
-				break
-			# Strip comments
-			i = line.find('#')
-			if i >= 0:
-				line = line[:i]
-			if line.endswith('\\\n'):
-				pendingline = line[:-2]
-				continue
-			matchobj = setupvardef.match(line)
-			if matchobj:
-				(name, value) = matchobj.group(1, 2)
-				variables[name] = value.strip()
-			else:
-				words = line.split()
-				if words:
-					modules[words[0]] = words[1:]
-	finally:
-		fp.close()
-	return modules, variables
+    modules = {}
+    variables = {}
+    fp = open(filename)
+    pendingline = ""
+    try:
+        while 1:
+            line = fp.readline()
+            if pendingline:
+                line = pendingline + line
+                pendingline = ""
+            if not line:
+                break
+            # Strip comments
+            i = line.find('#')
+            if i >= 0:
+                line = line[:i]
+            if line.endswith('\\\n'):
+                pendingline = line[:-2]
+                continue
+            matchobj = setupvardef.match(line)
+            if matchobj:
+                (name, value) = matchobj.group(1, 2)
+                variables[name] = value.strip()
+            else:
+                words = line.split()
+                if words:
+                    modules[words[0]] = words[1:]
+    finally:
+        fp.close()
+    return modules, variables
 
 
 # Test the above functions.
 
 def test():
-	import sys
-	import os
-	if not sys.argv[1:]:
-		print 'usage: python parsesetup.py Makefile*|Setup* ...'
-		sys.exit(2)
-	for arg in sys.argv[1:]:
-		base = os.path.basename(arg)
-		if base[:8] == 'Makefile':
-			print 'Make style parsing:', arg
-			v = getmakevars(arg)
-			prdict(v)
-		elif base[:5] == 'Setup':
-			print 'Setup style parsing:', arg
-			m, v = getsetupinfo(arg)
-			prdict(m)
-			prdict(v)
-		else:
-			print arg, 'is neither a Makefile nor a Setup file'
-			print '(name must begin with "Makefile" or "Setup")'
+    import sys
+    import os
+    if not sys.argv[1:]:
+        print 'usage: python parsesetup.py Makefile*|Setup* ...'
+        sys.exit(2)
+    for arg in sys.argv[1:]:
+        base = os.path.basename(arg)
+        if base[:8] == 'Makefile':
+            print 'Make style parsing:', arg
+            v = getmakevars(arg)
+            prdict(v)
+        elif base[:5] == 'Setup':
+            print 'Setup style parsing:', arg
+            m, v = getsetupinfo(arg)
+            prdict(m)
+            prdict(v)
+        else:
+            print arg, 'is neither a Makefile nor a Setup file'
+            print '(name must begin with "Makefile" or "Setup")'
 
 def prdict(d):
-	keys = d.keys()
-	keys.sort()
-	for key in keys:
-		value = d[key]
-		print "%-15s" % key, str(value)
+    keys = d.keys()
+    keys.sort()
+    for key in keys:
+        value = d[key]
+        print "%-15s" % key, str(value)
 
 if __name__ == '__main__':
-	test()
+    test()
diff --git a/Tools/i18n/msgfmt.py b/Tools/i18n/msgfmt.py
index 8a2d4e6..b4ae3e9 100755
--- a/Tools/i18n/msgfmt.py
+++ b/Tools/i18n/msgfmt.py
@@ -113,7 +113,7 @@
     except IOError, msg:
         print >> sys.stderr, msg
         sys.exit(1)
-    
+
     section = None
     fuzzy = 0
 
@@ -169,7 +169,7 @@
         open(outfile,"wb").write(output)
     except IOError,msg:
         print >> sys.stderr, msg
-                      
+
 
 
 def main():
diff --git a/Tools/modulator/Tkextra.py b/Tools/modulator/Tkextra.py
index 00ed5eb..8f55728 100755
--- a/Tools/modulator/Tkextra.py
+++ b/Tools/modulator/Tkextra.py
@@ -105,7 +105,7 @@
                   {'width': '3i',
                    'text': text,
                    'font': '-Adobe-Times-Medium-R-Normal-*-180-*',
-                   Pack: {'side': 'left', 
+                   Pack: {'side': 'left',
                           'fill': 'both',
                           'padx': '3m', 'pady': '3m'}})
 
@@ -187,7 +187,7 @@
 def askfile(str):       # XXXX For now...
     i = strdialog(mainWidget, 'Question', str, '', 0)
     return i
-    
+
 # The rest is the test program.
 
 def _go():
diff --git a/Tools/modulator/genmodule.py b/Tools/modulator/genmodule.py
index 5788b95..da30684 100755
--- a/Tools/modulator/genmodule.py
+++ b/Tools/modulator/genmodule.py
@@ -65,7 +65,7 @@
                 return open(fn, 'r')
         raise error, 'Template '+name+' not found for '+self._type+' '+ \
                      self.name
-        
+
 class module(writer):
     _type = 'module'
 
@@ -116,7 +116,7 @@
         # Add getattr if we have methods
         if self.methodlist and not 'tp_getattr' in self.funclist:
             self.funclist.insert(0, 'tp_getattr')
-            
+
         for fn in FUNCLIST:
             setattr(self, fn, '0')
 
diff --git a/Tools/modulator/modulator.py b/Tools/modulator/modulator.py
index 4828743..3e06bc2 100755
--- a/Tools/modulator/modulator.py
+++ b/Tools/modulator/modulator.py
@@ -49,7 +49,7 @@
     for i in range(n):
         rv.append(list.get(i))
     return rv
-    
+
 class UI:
     def __init__(self):
         self.main = Frame()
@@ -97,7 +97,7 @@
                 o.synchronize()
         except oops:
             pass
-        
+
     def cb_save(self, *args):
         try:
             pycode = self.module.gencode('m', self.objects)
@@ -177,12 +177,12 @@
                                               'command':self.cb_newobj,
                                               Pack:{'side':'left',
                                                     'padx':'0.5m'}})
-        
+
     def cb_delmethod(self, *args):
         list = self.method_list.curselection()
         for i in list:
             self.method_list.delete(i)
-        
+
     def cb_newobj(self, *arg):
         self.parent.objects.append(UI_object(self.parent))
 
@@ -208,7 +208,7 @@
             if not checkid(n):
                 message('Method name not an identifier:\n'+n)
                 raise oops
-            
+
     def gencode(self, name, objects):
         rv = ''
         self.synchronize()
@@ -226,7 +226,7 @@
         rv = rv + '%s.objects = [%s]\n' % (name, ','.join(onames))
         rv = rv + '\n'
         return rv
-        
+
 object_number = 0
 
 class UI_object:
@@ -250,7 +250,7 @@
                                            'fill':'x'}})
         self.f4 = Frame(self.frame, {Pack:{'side':'top', 'pady':'0.5m',
                                            'fill':'x'}})
-        
+
 
         self.l1 = Label(self.f1, {'text':'Object:', Pack:{'side':'left',
                                                         'padx':'0.5m'}})
@@ -305,7 +305,7 @@
                                       Pack:{'side':'top', 'pady':'0.5m',
                                             'anchor':'w'}})
             self.types[i] = b
-        
+
     def cb_method(self, *arg):
         name = self.method_entry.get()
         if not name:
@@ -317,7 +317,7 @@
         list = self.method_list.curselection()
         for i in list:
             self.method_list.delete(i)
-        
+
     def synchronize(self):
         n = self.name_entry.get()
         if not n:
@@ -337,7 +337,7 @@
         if m:
             self.f5.setvar(self.vpref+'tp_getattr', 1)
         pass
-        
+
     def gencode(self, name):
         rv = ''
         rv = rv + '%s = genmodule.object()\n' % (name,)
@@ -356,12 +356,12 @@
             vname = self.vpref + fn
             if self.f5.getvar(vname) == '1':
                 fl.append(fn)
-                
+
         rv = rv + '%s.typelist = %r\n' % (name, fl)
 
         rv = rv + '\n'
         return rv
-        
+
 
 def main():
     if len(sys.argv) < 2:
@@ -379,5 +379,5 @@
     else:
         sys.stderr.write('Usage: modulator [file]\n')
         sys.exit(1)
-        
+
 main()
diff --git a/Tools/modulator/varsubst.py b/Tools/modulator/varsubst.py
index 5516be2..3b33950 100644
--- a/Tools/modulator/varsubst.py
+++ b/Tools/modulator/varsubst.py
@@ -13,7 +13,7 @@
 
     def useindent(self, onoff):
         self.do_useindent = onoff
-        
+
     def subst(self, s):
         rv = ''
         while 1:
diff --git a/Tools/pynche/ChipViewer.py b/Tools/pynche/ChipViewer.py
index faa6948..05412ce 100644
--- a/Tools/pynche/ChipViewer.py
+++ b/Tools/pynche/ChipViewer.py
@@ -101,7 +101,7 @@
         # shows the name of the nearest color in the database.  BAW: should
         # an exact match be indicated in some way?
         #
-        # Always use the #rrggbb style to actually set the color, since we may 
+        # Always use the #rrggbb style to actually set the color, since we may
         # not be using X color names (e.g. "web-safe" names)
         colordb = self.__sb.colordb()
         rgbtuple = (red, green, blue)
diff --git a/Tools/pynche/DetailsViewer.py b/Tools/pynche/DetailsViewer.py
index 07f5acd..11a99a6 100644
--- a/Tools/pynche/DetailsViewer.py
+++ b/Tools/pynche/DetailsViewer.py
@@ -2,13 +2,13 @@
 
 This class implements a pure input window which allows you to meticulously
 edit the current color.  You have both mouse control of the color (via the
-buttons along the bottom row), and there are keyboard bindings for each of the 
+buttons along the bottom row), and there are keyboard bindings for each of the
 increment/decrement buttons.
 
 The top three check buttons allow you to specify which of the three color
 variations are tied together when incrementing and decrementing.  Red, green,
 and blue are self evident.  By tying together red and green, you can modify
-the yellow level of the color.  By tying together red and blue, you can modify 
+the yellow level of the color.  By tying together red and blue, you can modify
 the magenta level of the color.  By tying together green and blue, you can
 modify the cyan level, and by tying all three together, you can modify the
 grey level.
diff --git a/Tools/pynche/StripViewer.py b/Tools/pynche/StripViewer.py
index 429cc78..f7da479 100644
--- a/Tools/pynche/StripViewer.py
+++ b/Tools/pynche/StripViewer.py
@@ -1,6 +1,6 @@
 """Strip viewer and related widgets.
 
-The classes in this file implement the StripViewer shown in the top two thirds 
+The classes in this file implement the StripViewer shown in the top two thirds
 of the main Pynche window.  It consists of three StripWidgets which display
 the variations in red, green, and blue respectively of the currently selected
 r/g/b color value.
@@ -182,7 +182,7 @@
         # the last chip selected
         self.__lastchip = None
         self.__sb = switchboard
-        
+
         canvaswidth = numchips * (chipwidth + 1)
         canvasheight = chipheight + 43            # BAW: Kludge
 
@@ -372,7 +372,7 @@
         hexbtn.grid(row=1, column=1, sticky=W)
 
         # XXX: ignore this feature for now; it doesn't work quite right yet
-        
+
 ##        gentypevar = self.__gentypevar = IntVar()
 ##        self.__variations = Radiobutton(frame,
 ##                                        text='Variations',
diff --git a/Tools/unicode/mkstringprep.py b/Tools/unicode/mkstringprep.py
index c621967..2525f9e 100644
--- a/Tools/unicode/mkstringprep.py
+++ b/Tools/unicode/mkstringprep.py
@@ -429,4 +429,3 @@
 def in_table_d2(code):
     return unicodedata.bidirectional(code) == "L"
 """
-
diff --git a/Tools/versioncheck/checkversions.py b/Tools/versioncheck/checkversions.py
index 956f553..fd128b6 100644
--- a/Tools/versioncheck/checkversions.py
+++ b/Tools/versioncheck/checkversions.py
@@ -1,4 +1,4 @@
-"""Checkversions - recursively search a directory (default: sys.prefix) 
+"""Checkversions - recursively search a directory (default: sys.prefix)
 for _checkversion.py files, and run each of them. This will tell you of
 new versions available for any packages you have installed."""
 
@@ -29,7 +29,7 @@
             execfile(fullname)
         except:
             print '** Exception in', fullname
-            
+
 def walk1tree(tree):
     os.path.walk(tree, check1dir, None)
 
@@ -50,5 +50,3 @@
 
 if __name__ == '__main__':
     main()
-
-
diff --git a/Tools/versioncheck/pyversioncheck.py b/Tools/versioncheck/pyversioncheck.py
index 6ac34c8..1446653 100644
--- a/Tools/versioncheck/pyversioncheck.py
+++ b/Tools/versioncheck/pyversioncheck.py
@@ -96,4 +96,3 @@
 
 if __name__ == '__main__':
     _test()
-
diff --git a/Tools/webchecker/wcgui.py b/Tools/webchecker/wcgui.py
index e467d92..96aed0a 100755
--- a/Tools/webchecker/wcgui.py
+++ b/Tools/webchecker/wcgui.py
@@ -10,17 +10,17 @@
 
 User interface:
 
-Enter a root to check in the text entry box.  To enter more than one root, 
+Enter a root to check in the text entry box.  To enter more than one root,
 enter them one at a time and press <Return> for each one.
 
-Command buttons Start, Stop and "Check one" govern the checking process in 
-the obvious way.  Start and "Check one" also enter the root from the text 
+Command buttons Start, Stop and "Check one" govern the checking process in
+the obvious way.  Start and "Check one" also enter the root from the text
 entry box if one is present.  There's also a check box (enabled by default)
 to decide whether actually to follow external links (since this can slow
 the checking down considerably).  Finally there's a Quit button.
 
-A series of checkbuttons determines whether the corresponding output panel 
-is shown.  List panels are also automatically shown or hidden when their 
+A series of checkbuttons determines whether the corresponding output panel
+is shown.  List panels are also automatically shown or hidden when their
 status changes between empty to non-empty.  There are six panels:
 
 Log        -- raw output from the checker (-v, -q affect this)
diff --git a/Tools/webchecker/webchecker.py b/Tools/webchecker/webchecker.py
index 9113c4b..d918a0c 100755
--- a/Tools/webchecker/webchecker.py
+++ b/Tools/webchecker/webchecker.py
@@ -297,7 +297,7 @@
     def message(self, format, *args):
         if args:
             format = format%args
-        print format 
+        print format
 
     def __getstate__(self):
         return (self.roots, self.todo, self.done, self.bad, self.round)
@@ -380,7 +380,7 @@
             # triples is now a (URL, fragment) pair. The value
             # of the "source" variable comes from the list of
             # origins, and is a URL, not a pair.
-            for url, rawlink, msg in triples:           
+            for url, rawlink, msg in triples:
                 if rawlink != self.format_url(url): s = " (%s)" % rawlink
                 else: s = ""
                 self.message("  HREF %s%s\n    msg %s",
@@ -462,7 +462,7 @@
             self.todo[url] = [origin]
             self.note(3, "  New todo link %s", self.format_url(url))
 
-    def format_url(self, url):  
+    def format_url(self, url):
         link, fragment = url
         if fragment: return link + "#" + fragment
         else: return link
@@ -716,7 +716,7 @@
             t = t[:-1] + ('',)
             rawlink = urlparse.urlunparse(t)
             link = urlparse.urljoin(base, rawlink)
-            infos.append((link, rawlink, fragment))     
+            infos.append((link, rawlink, fragment))
 
         return infos