Stylistic/formatting changes to Rene Liebscher's '--help-xxx' patch.
diff --git a/Lib/distutils/archive_util.py b/Lib/distutils/archive_util.py
index 27aa8c0..08a3c83 100644
--- a/Lib/distutils/archive_util.py
+++ b/Lib/distutils/archive_util.py
@@ -110,10 +110,10 @@
 
 
 ARCHIVE_FORMATS = {
-    'gztar': (make_tarball, [('compress', 'gzip')],"gzipped tar-file"),
-    'bztar': (make_tarball, [('compress', 'bzip2')],"bzip2-ed tar-file"),
-    'ztar':  (make_tarball, [('compress', 'compress')],"compressed tar-file"),
-    'tar':   (make_tarball, [('compress', None)],"uncompressed tar-file"),
+    'gztar': (make_tarball, [('compress', 'gzip')], "gzip'ed tar-file"),
+    'bztar': (make_tarball, [('compress', 'bzip2')], "bzip2'ed tar-file"),
+    'ztar':  (make_tarball, [('compress', 'compress')], "compressed tar file"),
+    'tar':   (make_tarball, [('compress', None)], "uncompressed tar file"),
     'zip':   (make_zipfile, [],"zip-file")
     }
 
diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py
index 53d4fa5..5be8c25 100644
--- a/Lib/distutils/ccompiler.py
+++ b/Lib/distutils/ccompiler.py
@@ -742,20 +742,30 @@
 # Map compiler types to (module_name, class_name) pairs -- ie. where to
 # find the code that implements an interface to this compiler.  (The module
 # is assumed to be in the 'distutils' package.)
-compiler_class = { 'unix': ('unixccompiler', 'UnixCCompiler',"standard UNIX-style compiler"),
-                   'msvc': ('msvccompiler', 'MSVCCompiler',"Microsoft Visual C++"),
-                   'cygwin':  ('cygwinccompiler', 'CygwinCCompiler',"Cygwin-Gnu-Win32-C-Compiler"),
-                   'mingw32': ('cygwinccompiler', 'Mingw32CCompiler',"MinGW32-C-Compiler (or cygwin in this mode)"),
+compiler_class = { 'unix':    ('unixccompiler', 'UnixCCompiler',
+                               "standard UNIX-style compiler"),
+                   'msvc':    ('msvccompiler', 'MSVCCompiler',
+                               "Microsoft Visual C++"),
+                   'cygwin':  ('cygwinccompiler', 'CygwinCCompiler',
+                               "Cygwin port of GNU C Compiler for Win32"),
+                   'mingw32': ('cygwinccompiler', 'Mingw32CCompiler',
+                               "Mingw32 port of GNU C Compiler for Win32"),
                  }
 
-# prints all possible arguments to --compiler
 def show_compilers():
+    """Print list of available compilers (used by the "--help-compiler"
+    options to "build", "build_ext", "build_clib").
+    """
+    # XXX this "knows" that the compiler option it's describing is
+    # "--compiler", which just happens to be the case for the three
+    # commands that use it.
     from distutils.fancy_getopt import FancyGetopt 
-    list_of_compilers=[]
+    compilers = []
     for compiler in compiler_class.keys():
-	list_of_compilers.append(("compiler="+compiler,None,compiler_class[compiler][2]))
-    list_of_compilers.sort()
-    pretty_printer=FancyGetopt(list_of_compilers)
+	compilers.append(("compiler="+compiler, None,
+                          compiler_class[compiler][2]))
+    compilers.sort()
+    pretty_printer = FancyGetopt(compilers)
     pretty_printer.print_help("List of available compilers:")
     
 
@@ -783,7 +793,7 @@
         if compiler is None:
             compiler = default_compiler[plat]
         
-        (module_name, class_name,long_description) = compiler_class[compiler]
+        (module_name, class_name, long_description) = compiler_class[compiler]
     except KeyError:
         msg = "don't know how to compile C/C++ code on platform '%s'" % plat
         if compiler is not None:
diff --git a/Lib/distutils/command/bdist.py b/Lib/distutils/command/bdist.py
index 66ef113..1646993 100644
--- a/Lib/distutils/command/bdist.py
+++ b/Lib/distutils/command/bdist.py
@@ -21,7 +21,7 @@
     user_options = [('bdist-base=', 'b',
                      "temporary directory for creating built distributions"),
                     ('formats=', None,
-                     "formats for distribution"),
+                     "formats for distribution (comma-separated list)"),
                    ]
 
     # The following commands do not take a format option from bdist
@@ -32,22 +32,24 @@
     default_format = { 'posix': 'gztar',
                        'nt': 'zip', }
 
-    format_command = { 'gztar': ('bdist_dumb',"gzipped tar-file"),
-                       'bztar': ('bdist_dumb',"bzip2-ed tar-file"),
-                       'ztar':  ('bdist_dumb',"compressed tar-file"),
-                       'tar':   ('bdist_dumb',"tar-file"),
-                       'rpm':   ('bdist_rpm',"rpm distribution"),
-                       'zip':   ('bdist_dumb',"zip-file"),
+    format_command = { 'rpm':   ('bdist_rpm',  "RPM distribution"),
+                       'gztar': ('bdist_dumb', "gzip'ed tar file"),
+                       'bztar': ('bdist_dumb', "bzip2'ed tar file"),
+                       'ztar':  ('bdist_dumb', "compressed tar file"),
+                       'tar':   ('bdist_dumb', "tar file"),
+                       'zip':   ('bdist_dumb', "ZIP file"),
 		        }
 
-    # prints all possible arguments to --format
-    def show_formats():
+    def show_formats ():
+        """Print list of available formats (arguments to "--format" option).
+        """
 	from distutils.fancy_getopt import FancyGetopt 
-	list_of_formats=[]
+	formats=[]
 	for format in bdist.format_command.keys():
-	    list_of_formats.append(("formats="+format,None,bdist.format_command[format][1]))
-	list_of_formats.sort()
-	pretty_printer=FancyGetopt(list_of_formats)
+	    formats.append(("formats="+format, None,
+                            bdist.format_command[format][1]))
+	formats.sort()
+	pretty_printer = FancyGetopt(formats)
 	pretty_printer.print_help("List of available distribution formats:")
 
     help_options = [
@@ -87,7 +89,6 @@
     def run (self):
 
         for format in self.formats:
-
             try:
                 cmd_name = self.format_command[format][0]
             except KeyError:
diff --git a/Lib/distutils/command/build.py b/Lib/distutils/command/build.py
index c064f83..d5513fc 100644
--- a/Lib/distutils/command/build.py
+++ b/Lib/distutils/command/build.py
@@ -36,9 +36,10 @@
         ('force', 'f',
          "forcibly build everything (ignore file timestamps)"),
         ]
+
     help_options = [
         ('help-compiler', None,
-         "lists available compilers",show_compilers),
+         "list available compilers", show_compilers),
 	]
 
     def initialize_options (self):
diff --git a/Lib/distutils/command/build_clib.py b/Lib/distutils/command/build_clib.py
index 72df372..9a82ac0 100644
--- a/Lib/distutils/command/build_clib.py
+++ b/Lib/distutils/command/build_clib.py
@@ -42,9 +42,10 @@
         ('compiler=', 'c',
          "specify the compiler type"),
         ]
+
     help_options = [
         ('help-compiler', None,
-         "lists available compilers",show_compilers),
+         "list available compilers", show_compilers),
 	]
 
     def initialize_options (self):
diff --git a/Lib/distutils/command/sdist.py b/Lib/distutils/command/sdist.py
index ded8ec2..93e53bb 100644
--- a/Lib/distutils/command/sdist.py
+++ b/Lib/distutils/command/sdist.py
@@ -36,7 +36,7 @@
         ('force-manifest', 'f',
          "forcibly regenerate the manifest and carry on as usual"),
         ('formats=', None,
-         "formats for source distribution"),
+         "formats for source distribution (comma-separated list)"),
         ('keep-tree', 'k',
          "keep the distribution tree around after creating " +
          "archive file(s)"),
@@ -61,7 +61,7 @@
 
     help_options = [
         ('help-formats', None,
-         "lists available distribution formats", show_formats),
+         "list available distribution formats", show_formats),
 	]
 
     negative_opts = {'use-defaults': 'no-defaults'}
diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py
index 88bd94a..2e4951f 100644
--- a/Lib/distutils/dist.py
+++ b/Lib/distutils/dist.py
@@ -437,11 +437,14 @@
             negative_opt = copy (negative_opt)
             negative_opt.update (cmd_class.negative_opt)
 
-	# Check for help_options in command class
-	# They have a different format (tuple of four) so we need to preprocess them here 
-	help_options = []
-	if hasattr(cmd_class,"help_options") and type (cmd_class.help_options) is ListType:
-	    help_options = map(lambda x:(x[0],x[1],x[2]),cmd_class.help_options)
+	# Check for help_options in command class.  They have a different
+	# format (tuple of four) so we need to preprocess them here.
+	if (hasattr(cmd_class, 'help_options') and
+            type (cmd_class.help_options) is ListType):
+            help_options = fix_help_options(cmd_class.help_options)
+        else:
+            help_optiosn = []
+
 
         # All commands support the global options too, just by adding
         # in 'global_options'.
@@ -453,12 +456,14 @@
             self._show_help(parser, display_options=0, commands=[cmd_class])
             return
 
-	if hasattr(cmd_class,"help_options") and type (cmd_class.help_options) is ListType:
+	if (hasattr(cmd_class, 'help_options') and
+            type (cmd_class.help_options) is ListType):
 	    help_option_found=0
 	    for help_option in cmd_class.help_options:
 		if hasattr(opts, parser.get_attr_name(help_option[0])):
 		    help_option_found=1
-		    #print "showing help for option %s of command %s" % (help_option[0],cmd_class)
+		    #print "showing help for option %s of command %s" % \
+                    #      (help_option[0],cmd_class)
 		    if callable(help_option[3]):
 			help_option[3]()
 		    else:
@@ -518,9 +523,10 @@
                 klass = command
             else:
                 klass = self.get_command_class (command)
-	    if hasattr(klass,"help_options") and type (klass.help_options) is ListType:
-		parser.set_option_table (klass.user_options+
-					 map(lambda x:(x[0],x[1],x[2]),klass.help_options))
+	    if (hasattr(klass, 'help_options') and
+                type (klass.help_options) is ListType):
+		parser.set_option_table (klass.user_options +
+                                         fix_help_options(klass.help_options))
 	    else:
         	parser.set_option_table (klass.user_options)
             parser.print_help ("Options for '%s' command:" % klass.__name__)
@@ -890,6 +896,17 @@
 
 # class DistributionMetadata
 
+
+def fix_help_options (options):
+    """Convert a 4-tuple 'help_options' list as found in various command
+    classes to the 3-tuple form required by FancyGetopt.
+    """
+    new_options = []
+    for help_tuple in options:
+        new_options.append(help_tuple[0:3])
+    return new_options
+
+
 if __name__ == "__main__":
     dist = Distribution ()
     print "ok"