Merged revisions 83370,83372-83374,83384 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k

........
  r83370 | georg.brandl | 2010-07-31 23:51:48 +0200 (Sa, 31 Jul 2010) | 5 lines

  #8198: the Helper class should not save the stdin and stdout objects
  at import time, rather by default use the current streams like the
  other APIs that output help.
........
  r83372 | georg.brandl | 2010-08-01 00:05:54 +0200 (So, 01 Aug 2010) | 1 line

  #4007: remove *.a and *.so.X.Y files in "make clean".
........
  r83373 | georg.brandl | 2010-08-01 00:11:11 +0200 (So, 01 Aug 2010) | 1 line

  #5147: revert accidental indentation of header constant for MozillaCookieJar.
........
  r83374 | georg.brandl | 2010-08-01 00:32:52 +0200 (So, 01 Aug 2010) | 1 line

  #5146: handle UID THREAD command correctly.
........
  r83384 | georg.brandl | 2010-08-01 08:32:55 +0200 (So, 01 Aug 2010) | 1 line

  Build properties using lambdas.  This makes test_pyclbr pass again, because it does not think that input and output are methods anymore.
........
diff --git a/Lib/http/cookiejar.py b/Lib/http/cookiejar.py
index 2604817..9b0ee80 100644
--- a/Lib/http/cookiejar.py
+++ b/Lib/http/cookiejar.py
@@ -1964,9 +1964,9 @@
     """
     magic_re = re.compile("#( Netscape)? HTTP Cookie File")
     header = """\
-    # Netscape HTTP Cookie File
-    # http://www.netscape.com/newsref/std/cookie_spec.html
-    # This is a generated file!  Do not edit.
+# Netscape HTTP Cookie File
+# http://www.netscape.com/newsref/std/cookie_spec.html
+# This is a generated file!  Do not edit.
 
 """
 
diff --git a/Lib/imaplib.py b/Lib/imaplib.py
index ec47657..2699fd4 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -765,7 +765,7 @@
                               ', '.join(Commands[command])))
         name = 'UID'
         typ, dat = self._simple_command(name, command, *args)
-        if command in ('SEARCH', 'SORT'):
+        if command in ('SEARCH', 'SORT', 'THREAD'):
             name = command
         else:
             name = 'FETCH'
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 3f2a5d8..e1e6d80 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -1694,9 +1694,12 @@
         'CONTEXTMANAGERS': ('context-managers', 'with'),
     }
 
-    def __init__(self, input, output):
-        self.input = input
-        self.output = output
+    def __init__(self, input=None, output=None):
+        self._input = input
+        self._output = output
+
+    input  = property(lambda self: self._input or sys.stdin)
+    output = property(lambda self: self._output or sys.stdout)
 
     def __repr__(self):
         if inspect.stack()[1][3] == '?':
@@ -1872,7 +1875,7 @@
 for modules whose descriptions contain the word "spam".
 ''')
 
-help = Helper(sys.stdin, sys.stdout)
+help = Helper()
 
 class Scanner:
     """A generic tree iterator."""
diff --git a/Makefile.pre.in b/Makefile.pre.in
index efa0716..c18bd0a 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1166,8 +1166,9 @@
 	-rm -rf Doc/tools/sphinx Doc/tools/pygments Doc/tools/docutils
 
 clean: pycremoval
-	find . -name '*.o' -exec rm -f {} ';'
+	find . -name '*.[oa]' -exec rm -f {} ';'
 	find . -name '*.s[ol]' -exec rm -f {} ';'
+	find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
 	find build -name 'fficonfig.h' -exec rm -f {} ';' || true
 	find build -name 'fficonfig.py' -exec rm -f {} ';' || true
 	-rm -f Lib/lib2to3/*Grammar*.pickle
diff --git a/Misc/NEWS b/Misc/NEWS
index 5bbbd3d..80e1ced 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -84,6 +84,14 @@
 Library
 -------
 
+- Issue #5146: Handle UID THREAD command correctly in imaplib.
+
+- Issue #5147: Fix the header generated for cookie files written by
+  http.cookiejar.MozillaCookieJar.
+
+- Issue #8198: In pydoc, output all help text to the correct stream
+  when sys.stdout is reassigned.
+
 - Issue #8230: Fix Lib/test/sortperf.py.
 
 - Issue #7395: Fix tracebacks in pstats interactive browser.