Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
number of tests, all because of the codecs/_multibytecodecs issue described
here (it's not a Py3K issue, just something Py3K discovers):
http://mail.python.org/pipermail/python-dev/2006-April/064051.html

Hye-Shik Chang promised to look for a fix, so no need to fix it here. The
tests that are expected to break are:

test_codecencodings_cn
test_codecencodings_hk
test_codecencodings_jp
test_codecencodings_kr
test_codecencodings_tw
test_codecs
test_multibytecodec

This merge fixes an actual test failure (test_weakref) in this branch,
though, so I believe merging is the right thing to do anyway.
diff --git a/Tools/scripts/byext.py b/Tools/scripts/byext.py
index 93759bc..09610b0 100644
--- a/Tools/scripts/byext.py
+++ b/Tools/scripts/byext.py
@@ -17,7 +17,7 @@
             elif os.path.isfile(arg):
                 self.statfile(arg)
             else:
-                sys.stderr.write("Can't find %s\n" % file)
+                sys.stderr.write("Can't find %s\n" % arg)
                 self.addstats("<???>", "unknown", 1)
 
     def statdir(self, dir):
@@ -25,8 +25,8 @@
         try:
             names = os.listdir(dir)
         except os.error, err:
-            sys.stderr.write("Can't list %s: %s\n" % (file, err))
-            self.addstats(ext, "unlistable", 1)
+            sys.stderr.write("Can't list %s: %s\n" % (dir, err))
+            self.addstats("<dir>", "unlistable", 1)
             return
         names.sort()
         for name in names:
@@ -42,9 +42,9 @@
             else:
                 self.statfile(full)
 
-    def statfile(self, file):
-        head, ext = os.path.splitext(file)
-        head, base = os.path.split(file)
+    def statfile(self, filename):
+        head, ext = os.path.splitext(filename)
+        head, base = os.path.split(filename)
         if ext == base:
             ext = "" # E.g. .cvsignore is deemed not to have an extension
         ext = os.path.normcase(ext)
@@ -52,9 +52,9 @@
             ext = "<none>"
         self.addstats(ext, "files", 1)
         try:
-            f = open(file, "rb")
+            f = open(filename, "rb")
         except IOError, err:
-            sys.stderr.write("Can't open %s: %s\n" % (file, err))
+            sys.stderr.write("Can't open %s: %s\n" % (filename, err))
             self.addstats(ext, "unopenable", 1)
             return
         data = f.read()