Whitespace normalization.
diff --git a/Tools/idle/CallTipWindow.py b/Tools/idle/CallTipWindow.py
index cbeab8c..d253fa5 100644
--- a/Tools/idle/CallTipWindow.py
+++ b/Tools/idle/CallTipWindow.py
@@ -28,7 +28,7 @@
                       background="#ffffe0", relief=SOLID, borderwidth=1,
                       font = self.widget['font'])
         label.pack()
-                      
+
     def hidetip(self):
         tw = self.tipwindow
         self.tipwindow = None
@@ -53,7 +53,7 @@
         text.event_add("<<calltip-hide>>", ")")
         text.bind("<<calltip-show>>", self.calltip_show)
         text.bind("<<calltip-hide>>", self.calltip_hide)
-        
+
         text.focus_set()
         # root.mainloop() # not in idle
 
diff --git a/Tools/idle/CallTips.py b/Tools/idle/CallTips.py
index 04eccde..7c5f41c 100644
--- a/Tools/idle/CallTips.py
+++ b/Tools/idle/CallTips.py
@@ -45,7 +45,7 @@
         if self.calltip:
             self.calltip.hidetip()
             self.calltip = None
-        
+
     def paren_open_event(self, event):
         self._remove_calltip_window()
         arg_text = get_arg_text(self.get_object_at_cursor())
@@ -91,9 +91,9 @@
             namespace = sys.modules.copy()
             namespace.update(__main__.__dict__)
             try:
-                    return eval(word, namespace)
+                return eval(word, namespace)
             except:
-                    pass
+                pass
         return None # Can't find an object.
 
 def _find_constructor(class_ob):
diff --git a/Tools/idle/ClassBrowser.py b/Tools/idle/ClassBrowser.py
index f440164..19f3b7e 100644
--- a/Tools/idle/ClassBrowser.py
+++ b/Tools/idle/ClassBrowser.py
@@ -92,7 +92,7 @@
 
     def IsExpandable(self):
         return os.path.normcase(self.file[-3:]) == ".py"
-    
+
     def listclasses(self):
         dir, file = os.path.split(self.file)
         name, ext = os.path.splitext(file)
diff --git a/Tools/idle/Debugger.py b/Tools/idle/Debugger.py
index 267d39f..e4591ff 100644
--- a/Tools/idle/Debugger.py
+++ b/Tools/idle/Debugger.py
@@ -17,7 +17,7 @@
         bdb.Bdb.__init__(self)
         self.pyshell = pyshell
         self.make_gui()
-    
+
     def canonic(self, filename):
         # Canonicalize filename -- called by Bdb
         return os.path.normcase(os.path.abspath(filename))
@@ -299,10 +299,10 @@
         import linecache # Import as late as possible
         line = linecache.getline(filename, lineno)
         if not line:
-                return 'That line does not exist!'
+            return 'That line does not exist!'
         if not self.breaks.has_key(filename):
-                self.breaks[filename] = []
+            self.breaks[filename] = []
         list = self.breaks[filename]
         if not lineno in list:
-                list.append(lineno)
+            list.append(lineno)
         bp = bdb.Breakpoint(filename, lineno, temporary, cond)
diff --git a/Tools/idle/Delegator.py b/Tools/idle/Delegator.py
index 3665247..6125591 100644
--- a/Tools/idle/Delegator.py
+++ b/Tools/idle/Delegator.py
@@ -1,4 +1,3 @@
-
 class Delegator:
 
     # The cache is only used to be able to change delegates!
diff --git a/Tools/idle/FileList.py b/Tools/idle/FileList.py
index 0791157..db862a1 100644
--- a/Tools/idle/FileList.py
+++ b/Tools/idle/FileList.py
@@ -26,12 +26,12 @@
 
 
     def goodname(self, filename):
-            filename = self.canonize(filename)
-            key = os.path.normcase(filename)
-            if self.dict.has_key(key):
-                edit = self.dict[key]
-                filename = edit.io.filename or filename
-            return filename
+        filename = self.canonize(filename)
+        key = os.path.normcase(filename)
+        if self.dict.has_key(key):
+            edit = self.dict[key]
+            filename = edit.io.filename or filename
+        return filename
 
     def open(self, filename):
         assert filename
diff --git a/Tools/idle/FormatParagraph.py b/Tools/idle/FormatParagraph.py
index 76c52f5..ea18cc0 100644
--- a/Tools/idle/FormatParagraph.py
+++ b/Tools/idle/FormatParagraph.py
@@ -28,10 +28,10 @@
     keydefs = {
         '<<format-paragraph>>': ['<Alt-q>'],
     }
-    
+
     unix_keydefs = {
         '<<format-paragraph>>': ['<Meta-q>'],
-    } 
+    }
 
     def __init__(self, editwin):
         self.editwin = editwin
diff --git a/Tools/idle/IdleConf.py b/Tools/idle/IdleConf.py
index 36cad51..37f4ef1 100644
--- a/Tools/idle/IdleConf.py
+++ b/Tools/idle/IdleConf.py
@@ -10,24 +10,24 @@
     builtin_sections = {}
     for section in ('EditorWindow', 'Colors'):
         builtin_sections[section] = section
-    
+
     def getcolor(self, sec, name):
         """Return a dictionary with foreground and background colors
 
         The return value is appropriate for passing to Tkinter in, e.g.,
         a tag_config call.
         """
-	fore = self.getdef(sec, name + "-foreground")
-	back = self.getdef(sec, name + "-background")
+        fore = self.getdef(sec, name + "-foreground")
+        back = self.getdef(sec, name + "-background")
         return {"foreground": fore,
                 "background": back}
 
     def getdef(self, sec, options, raw=0, vars=None, default=None):
         """Get an option value for given section or return default"""
-	try:
+        try:
             return self.get(sec, options, raw, vars)
-	except (NoSectionError, NoOptionError):
-	    return default
+        except (NoSectionError, NoOptionError):
+            return default
 
     def getsection(self, section):
         """Return a SectionConfigParser object"""
@@ -37,10 +37,10 @@
         exts = []
         for sec in self.sections():
             if self.builtin_sections.has_key(sec):
-		continue
-	    # enable is a bool, but it may not be defined
-	    if self.getdef(sec, 'enable') != '0':
-		exts.append(sec)
+                continue
+            # enable is a bool, but it may not be defined
+            if self.getdef(sec, 'enable') != '0':
+                exts.append(sec)
         return exts
 
     def reload(self):
@@ -69,10 +69,10 @@
 
     def getint(self, option):
         return self.config.getint(self.section, option)
-    
+
     def getfloat(self, option):
         return self.config.getint(self.section, option)
-    
+
     def getboolean(self, option):
         return self.config.getint(self.section, option)
 
@@ -98,7 +98,7 @@
         genplatfile = os.path.join(dir, "config-mac.txt")
     else:
         genplatfile = os.path.join(dir, "config-unix.txt")
-        
+
     platfile = os.path.join(dir, "config-%s.txt" % sys.platform)
 
     try:
@@ -110,4 +110,3 @@
                    os.path.join(homedir, ".idle")))
 
 idleconf = IdleConfParser()
-
diff --git a/Tools/idle/IdleHistory.py b/Tools/idle/IdleHistory.py
index aa41b73..b882c92 100644
--- a/Tools/idle/IdleHistory.py
+++ b/Tools/idle/IdleHistory.py
@@ -86,4 +86,3 @@
         self.text.mark_set("insert", "end-1c")
         self.text.insert("insert", s)
         self.text.see("insert")
-
diff --git a/Tools/idle/MultiScrolledLists.py b/Tools/idle/MultiScrolledLists.py
index 32f6246..6c140df 100644
--- a/Tools/idle/MultiScrolledLists.py
+++ b/Tools/idle/MultiScrolledLists.py
@@ -10,7 +10,7 @@
 from ScrolledList import ScrolledList
 
 class MultiScrolledLists:
-    
+
     def __init__(self, root, nlists=2):
         assert nlists >= 1
         self.root = root
@@ -51,17 +51,17 @@
         self.fill(0)
         # XXX one after_idle isn't enough; two are...
         top.after_idle(self.call_pack_propagate_1)
-    
+
     def call_pack_propagate_1(self):
         self.top.after_idle(self.call_pack_propagate)
-    
+
     def call_pack_propagate(self):
         for frame in self.frames:
             frame.pack_propagate(0)
-    
+
     def close(self, event=None):
         self.top.destroy()
-    
+
     def settitle(self):
         short = self.shorttitle()
         long = self.longtitle()
@@ -80,23 +80,23 @@
     def longtitle(self):
         # override this
         return "Multi Scrolled Lists"
-    
+
     def shorttitle(self):
         # override this
         return None
-    
+
     def width(self, i):
         # override this
         return 20
-    
+
     def height(self, i):
         # override this
         return 10
-    
+
     def subtitle(self, i):
         # override this
         return "Column %d" % i
-     
+
     def fill(self, i):
         for k in range(i, self.nlists):
             self.lists[k].clear()
@@ -105,14 +105,14 @@
         l = self.items(i)
         for s in l:
             list.append(s)
-        
+
     def on_select(self, index, i):
         item = self.lists[i].get(index)
         del self.path[i:]
         self.path.append(item)
         if i+1 < self.nlists:
             self.fill(i+1)
-   
+
     def items(self, i):
         # override this
         l = []
@@ -122,7 +122,7 @@
                 s = self.path[i-1] + "." + s
             l.append(s)
         return l
-    
+
     def on_double(self, index, i):
         pass
 
diff --git a/Tools/idle/MultiStatusBar.py b/Tools/idle/MultiStatusBar.py
index c11db3e..dd6d041 100644
--- a/Tools/idle/MultiStatusBar.py
+++ b/Tools/idle/MultiStatusBar.py
@@ -1,32 +1,32 @@
 from Tkinter import *
 
 class MultiStatusBar(Frame):
-	
-	def __init__(self, master=None, **kw):
-		if master is None:
-			master = Tk()
-		apply(Frame.__init__, (self, master), kw)
-		self.labels = {}
 
-	def set_label(self, name, text='', side=LEFT):
-		if not self.labels.has_key(name):
-			label = Label(self, bd=1, relief=SUNKEN, anchor=W)
-			label.pack(side=side)
-			self.labels[name] = label
-		else:
-			label = self.labels[name]
-		label.config(text=text)
+    def __init__(self, master=None, **kw):
+        if master is None:
+            master = Tk()
+        apply(Frame.__init__, (self, master), kw)
+        self.labels = {}
+
+    def set_label(self, name, text='', side=LEFT):
+        if not self.labels.has_key(name):
+            label = Label(self, bd=1, relief=SUNKEN, anchor=W)
+            label.pack(side=side)
+            self.labels[name] = label
+        else:
+            label = self.labels[name]
+        label.config(text=text)
 
 def _test():
-	b = Frame()
-	c = Text(b)
-	c.pack(side=TOP)
-	a = MultiStatusBar(b)
-	a.set_label("one", "hello")
-	a.set_label("two", "world")
-	a.pack(side=BOTTOM, fill=X)
-	b.pack()
-	b.mainloop()
+    b = Frame()
+    c = Text(b)
+    c.pack(side=TOP)
+    a = MultiStatusBar(b)
+    a.set_label("one", "hello")
+    a.set_label("two", "world")
+    a.pack(side=BOTTOM, fill=X)
+    b.pack()
+    b.mainloop()
 
 if __name__ == '__main__':
-	_test()
+    _test()
diff --git a/Tools/idle/OutputWindow.py b/Tools/idle/OutputWindow.py
index 0c36a88..3d97362 100644
--- a/Tools/idle/OutputWindow.py
+++ b/Tools/idle/OutputWindow.py
@@ -111,17 +111,17 @@
         # XXX Should use IdlePrefs.ColorPrefs
         "stdout":  {"foreground": "blue"},
         "stderr":  {"foreground": "#007700"},
-    }   
-    
+    }
+
     def __init__(self, flist):
         self.flist = flist
         self.owin = None
-    
+
     def write(self, s, tags, mark):
         if not self.owin:
             self.setup()
         self.owin.write(s, tags, mark)
-    
+
     def setup(self):
         self.owin = owin = OutputWindow(self.flist)
         text = owin.text
diff --git a/Tools/idle/ParenMatch.py b/Tools/idle/ParenMatch.py
index a607e49..17d76c2 100644
--- a/Tools/idle/ParenMatch.py
+++ b/Tools/idle/ParenMatch.py
@@ -20,7 +20,7 @@
     """Highlight matching parentheses
 
     There are three supported style of paren matching, based loosely
-    on the Emacs options.  The style is select based on the 
+    on the Emacs options.  The style is select based on the
     HILITE_STYLE attribute; it can be changed used the set_style
     method.
 
@@ -43,9 +43,9 @@
     to the right of a right paren.  I don't know how to do that in Tk,
     so I haven't bothered.
     """
-    
+
     menudefs = []
-    
+
     keydefs = {
         '<<flash-open-paren>>' : ('<KeyRelease-parenright>',
                                   '<KeyRelease-bracketright>',
@@ -146,7 +146,7 @@
     indentwidth = AutoIndent.indentwidth
     tabwidth = AutoIndent.tabwidth
     context_use_ps1 = AutoIndent.context_use_ps1
-    
+
     def __init__(self, editwin):
         self.editwin = editwin
         self.text = editwin.text
@@ -158,7 +158,7 @@
             startatindex = `startat` + ".0"
             # rawtext needs to contain everything up to the last
             # character, which was the close paren.  the parser also
-	    # requires that the last line ends with "\n"
+            # requires that the last line ends with "\n"
             rawtext = self.text.get(startatindex, "insert")[:-1] + "\n"
             y.set_str(rawtext)
             bod = y.find_good_parse_start(
@@ -175,7 +175,7 @@
         lno = index2line(self.text.index("insert"))
         i, buf = self._find_offset_in_buf(lno)
         if i is None \
-	   or keysym_type(buf[i]) != right_keysym_type:
+           or keysym_type(buf[i]) != right_keysym_type:
             return None
         lines_back = string.count(buf[i:], "\n") - 1
         # subtract one for the "\n" added to please the parser
@@ -189,4 +189,3 @@
                   icis=self.editwin.is_char_in_string):
             return icis(startindex + "%dc" % offset)
         return inner
-
diff --git a/Tools/idle/PathBrowser.py b/Tools/idle/PathBrowser.py
index 7ea2410..86cd270 100644
--- a/Tools/idle/PathBrowser.py
+++ b/Tools/idle/PathBrowser.py
@@ -6,7 +6,7 @@
 from ClassBrowser import ClassBrowser, ModuleBrowserTreeItem
 
 class PathBrowser(ClassBrowser):
-    
+
     def __init__(self, flist):
         self.init(flist)
 
diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py
index 06d4f15..86c0f6b 100644
--- a/Tools/idle/PyShell.py
+++ b/Tools/idle/PyShell.py
@@ -124,7 +124,7 @@
         "stderr": cconf.getcolor("stderr"),
         "console": cconf.getcolor("console"),
         "ERROR": cconf.getcolor("ERROR"),
-	None: cconf.getcolor("normal"),
+        None: cconf.getcolor("normal"),
     })
 
 
diff --git a/Tools/idle/RemoteInterp.py b/Tools/idle/RemoteInterp.py
index 3ad574b..724997c 100644
--- a/Tools/idle/RemoteInterp.py
+++ b/Tools/idle/RemoteInterp.py
@@ -9,7 +9,7 @@
 class SocketProtocol:
     """A simple protocol for sending strings across a socket"""
     BUF_SIZE = 8192
-    
+
     def __init__(self, sock):
         self.sock = sock
         self._buffer = ''
@@ -176,11 +176,11 @@
 
     def decode_seqno(self, buf):
         return struct.unpack("I", buf)[0]
-                
+
 
 class StdioRedirector:
     """Redirect sys.std{in,out,err} to a set of file-like objects"""
-    
+
     def __init__(self, stdin, stdout, stderr):
         self.stdin = stdin
         self.stdout = stdout
@@ -292,7 +292,7 @@
                 self._cmd.dispatch()
         except EOFError:
             pass
-        
+
     def handle_stdout(self, buf):
         sys.stdout.write(buf)
 ##        sys.stdout.flush()
@@ -339,5 +339,4 @@
         startRemoteInterp(id)
     else:
         file = args[1]
-        riExec(id, file)        
-    
+        riExec(id, file)
diff --git a/Tools/idle/ScriptBinding.py b/Tools/idle/ScriptBinding.py
index e46cb76..b54dfc4 100644
--- a/Tools/idle/ScriptBinding.py
+++ b/Tools/idle/ScriptBinding.py
@@ -34,13 +34,13 @@
 by Untabify Region (both in the Edit menu)."""
 
 class ScriptBinding:
-    
+
     keydefs = {
         '<<check-module>>': ['<Alt-F5>', '<Meta-F5>'],
         '<<import-module>>': ['<F5>'],
         '<<run-script>>': ['<Control-F5>'],
     }
-    
+
     menudefs = [
         ('edit', [None,
                   ('Check module', '<<check-module>>'),
diff --git a/Tools/idle/ScrolledList.py b/Tools/idle/ScrolledList.py
index 7fb1c20..9211936 100644
--- a/Tools/idle/ScrolledList.py
+++ b/Tools/idle/ScrolledList.py
@@ -1,7 +1,7 @@
 from Tkinter import *
 
 class ScrolledList:
-    
+
     default = "(None)"
 
     def __init__(self, master, **options):
diff --git a/Tools/idle/Separator.py b/Tools/idle/Separator.py
index 2645e57..7145559 100644
--- a/Tools/idle/Separator.py
+++ b/Tools/idle/Separator.py
@@ -1,7 +1,7 @@
 from Tkinter import *
 
 class Separator:
-    
+
     def __init__(self, master, orient, min=10, thickness=5, bg=None):
         self.min = max(1, min)
         self.thickness = max(1, thickness)
@@ -10,14 +10,14 @@
             self.dim = "width"
             self.dir = "x"
             self.cursor = "sb_h_double_arrow"
-    	elif orient in ("v", "vertical"):
-    	    self.side = "top"
-    	    self.dim = "height"
-    	    self.dir = "y"
+        elif orient in ("v", "vertical"):
+            self.side = "top"
+            self.dim = "height"
+            self.dir = "y"
             self.cursor = "sb_v_double_arrow"
-    	else:
-    	    raise ValueError, "Separator: orient should be h or v"
-    	self.winfo_dim = "winfo_" + self.dim
+        else:
+            raise ValueError, "Separator: orient should be h or v"
+        self.winfo_dim = "winfo_" + self.dim
         self.master = master = Frame(master)
         master.pack(expand=1, fill="both")
         self.f1 = Frame(master)
diff --git a/Tools/idle/StackViewer.py b/Tools/idle/StackViewer.py
index 5b3c87a..ab09db0 100644
--- a/Tools/idle/StackViewer.py
+++ b/Tools/idle/StackViewer.py
@@ -100,7 +100,7 @@
             item = make_objecttreeitem(key + " =", value, setfunction)
             sublist.append(item)
         return sublist
-        
+
 def get_stack(t=None, f=None):
     if t is None:
         t = sys.last_traceback
diff --git a/Tools/idle/ToolTip.py b/Tools/idle/ToolTip.py
index 691f510..eadcdea 100644
--- a/Tools/idle/ToolTip.py
+++ b/Tools/idle/ToolTip.py
@@ -81,7 +81,7 @@
     b.pack()
     root.update()
     tip = ListboxToolTip(b, ["Hello", "world"])
-    
+
     # root.mainloop() # not in idle
 
 main()
diff --git a/Tools/idle/WindowList.py b/Tools/idle/WindowList.py
index 6de3e58..7e05a57 100644
--- a/Tools/idle/WindowList.py
+++ b/Tools/idle/WindowList.py
@@ -39,7 +39,7 @@
 
     def unregister_callback(self, callback):
         try:
-           self.callbacks.remove(callback)
+            self.callbacks.remove(callback)
         except ValueError:
             pass