Mass check-in after untabifying all files that need it.
diff --git a/Lib/ConfigParser.py b/Lib/ConfigParser.py
index 3d44bb5..957222c 100644
--- a/Lib/ConfigParser.py
+++ b/Lib/ConfigParser.py
@@ -34,23 +34,23 @@
     sections() -- return all the configuration section names, sans DEFAULT
 
     options(section) -- return list of configuration options for the named
-			section
+                        section
 
     read(*filenames) -- read and parse the list of named configuration files
 
     get(section, option, raw=0) -- return a string value for the named
-				   option.  All % interpolations are
-				   expanded in the return values, based on
-				   the defaults passed into the constructor
-				   and the DEFAULT section.
+                                   option.  All % interpolations are
+                                   expanded in the return values, based on
+                                   the defaults passed into the constructor
+                                   and the DEFAULT section.
 
     getint(section, options) -- like get(), but convert value to an integer
 
     getfloat(section, options) -- like get(), but convert value to a float
 
     getboolean(section, options) -- like get(), but convert value to
-				    a boolean (currently defined as 0
-				    or 1, only)
+                                    a boolean (currently defined as 0
+                                    or 1, only)
 """
 
 import sys
@@ -71,186 +71,186 @@
 # exception classes
 class Error:
     def __init__(self, msg=''):
-	self.__msg = msg
+        self.__msg = msg
     def __repr__(self):
-	return self.__msg
+        return self.__msg
 
 class NoSectionError(Error):
     def __init__(self, section):
-	Error.__init__(self, 'No section: %s' % section)
-	self.section = section
+        Error.__init__(self, 'No section: %s' % section)
+        self.section = section
 
 class DuplicateSectionError(Error):
     def __init__(self, section):
-	Error.__init__(self, "Section %s already exists" % section)
-	self.section = section
+        Error.__init__(self, "Section %s already exists" % section)
+        self.section = section
 
 class NoOptionError(Error):
     def __init__(self, option, section):
-	Error.__init__(self, "No option `%s' in section: %s" %
-		       (option, section))
-	self.option = option
-	self.section = section
+        Error.__init__(self, "No option `%s' in section: %s" %
+                       (option, section))
+        self.option = option
+        self.section = section
 
 class InterpolationError(Error):
     def __init__(self, reference, option, section):
-	Error.__init__(self,
-		       "Bad value substitution: sect `%s', opt `%s', ref `%s'"
-		       % (section, option, reference))
-	self.reference = reference
-	self.option = option
-	self.section = section
+        Error.__init__(self,
+                       "Bad value substitution: sect `%s', opt `%s', ref `%s'"
+                       % (section, option, reference))
+        self.reference = reference
+        self.option = option
+        self.section = section
 
 
 
 class ConfigParser:
     def __init__(self, defaults=None):
-	self.__sections = {}
-	if defaults is None:
-	    self.__defaults = {}
-	else:
-	    self.__defaults = defaults
+        self.__sections = {}
+        if defaults is None:
+            self.__defaults = {}
+        else:
+            self.__defaults = defaults
 
     def defaults(self):
-	return self.__defaults
+        return self.__defaults
 
     def sections(self):
-	"""Return a list of section names, excluding [DEFAULT]"""
-	# self.__sections will never have [DEFAULT] in it
-	return self.__sections.keys()
+        """Return a list of section names, excluding [DEFAULT]"""
+        # self.__sections will never have [DEFAULT] in it
+        return self.__sections.keys()
 
     def add_section(self, section):
-	"""Create a new section in the configuration.
+        """Create a new section in the configuration.
 
-	Raise DuplicateSectionError if a section by the specified name
-	already exists.
-	"""
-	if self.__sections.has_key(section):
-	    raise DuplicateSectionError(section)
-	self.__sections[section] = {}
+        Raise DuplicateSectionError if a section by the specified name
+        already exists.
+        """
+        if self.__sections.has_key(section):
+            raise DuplicateSectionError(section)
+        self.__sections[section] = {}
 
     def has_section(self, section):
-	"""Indicate whether the named section is present in the configuration.
+        """Indicate whether the named section is present in the configuration.
 
-	The DEFAULT section is not acknowledged.
-	"""
-	return self.__sections.has_key(section)
+        The DEFAULT section is not acknowledged.
+        """
+        return self.__sections.has_key(section)
 
     def options(self, section):
-	try:
-	    opts = self.__sections[section].copy()
-	except KeyError:
-	    raise NoSectionError(section)
-	opts.update(self.__defaults)
-	return opts.keys()
+        try:
+            opts = self.__sections[section].copy()
+        except KeyError:
+            raise NoSectionError(section)
+        opts.update(self.__defaults)
+        return opts.keys()
 
     def read(self, filenames):
-	"""Read and parse a list of filenames."""
-	if type(filenames) is type(''):
-	    filenames = [filenames]
-	for file in filenames:
-	    try:
-		fp = open(file, 'r')
-		self.__read(fp)
-	    except IOError:
-		pass
+        """Read and parse a list of filenames."""
+        if type(filenames) is type(''):
+            filenames = [filenames]
+        for file in filenames:
+            try:
+                fp = open(file, 'r')
+                self.__read(fp)
+            except IOError:
+                pass
 
     def get(self, section, option, raw=0):
-	"""Get an option value for a given section.
+        """Get an option value for a given section.
 
-	All % interpolations are expanded in the return values, based
-	on the defaults passed into the constructor.
+        All % interpolations are expanded in the return values, based
+        on the defaults passed into the constructor.
 
-	The section DEFAULT is special.
-	"""
-	try:
-	    sectdict = self.__sections[section].copy()
-	except KeyError:
-	    if section == DEFAULTSECT:
-		sectdict = {}
-	    else:
-		raise NoSectionError(section)
-	d = self.__defaults.copy()
-	d.update(sectdict)
-	option = string.lower(option)
-	try:
-	    rawval = d[option]
-	except KeyError:
-	    raise NoOptionError(option, section)
-	# do the string interpolation
-	if raw:
-	    return rawval
-	try:
-	    return rawval % d
-	except KeyError, key:
-	    raise InterpolationError(key, option, section)
+        The section DEFAULT is special.
+        """
+        try:
+            sectdict = self.__sections[section].copy()
+        except KeyError:
+            if section == DEFAULTSECT:
+                sectdict = {}
+            else:
+                raise NoSectionError(section)
+        d = self.__defaults.copy()
+        d.update(sectdict)
+        option = string.lower(option)
+        try:
+            rawval = d[option]
+        except KeyError:
+            raise NoOptionError(option, section)
+        # do the string interpolation
+        if raw:
+            return rawval
+        try:
+            return rawval % d
+        except KeyError, key:
+            raise InterpolationError(key, option, section)
 
     def __get(self, section, conv, option):
-	return conv(self.get(section, option))
+        return conv(self.get(section, option))
 
     def getint(self, section, option):
-	return self.__get(section, string.atoi, option)
+        return self.__get(section, string.atoi, option)
 
     def getfloat(self, section, option):
-	return self.__get(section, string.atof, option)
+        return self.__get(section, string.atof, option)
 
     def getboolean(self, section, option):
-	v = self.get(section, option)
-	val = string.atoi(v)
-	if val not in (0, 1):
-	    raise ValueError, 'Not a boolean: %s' % v
-	return val
+        v = self.get(section, option)
+        val = string.atoi(v)
+        if val not in (0, 1):
+            raise ValueError, 'Not a boolean: %s' % v
+        return val
 
     def __read(self, fp):
-	"""Parse a sectioned setup file.
+        """Parse a sectioned setup file.
 
-	The sections in setup file contains a title line at the top,
-	indicated by a name in square brackets (`[]'), plus key/value
-	options lines, indicated by `name: value' format lines.
-	Continuation are represented by an embedded newline then
-	leading whitespace.  Blank lines, lines beginning with a '#',
-	and just about everything else is ignored.
-	"""
-	cursect = None			# None, or a dictionary
-	optname = None
-	lineno = 0
-	while 1:
-	    line = fp.readline()
-	    if not line:
-		break
-	    lineno = lineno + 1
-	    # comment or blank line?
-	    if string.strip(line) == '' or line[0] in '#;':
-		continue
-	    if string.lower(string.split(line)[0]) == 'rem' \
-	       and line[0] == "r":	# no leading whitespace
-		continue
-	    # continuation line?
-	    if line[0] in ' \t' and cursect <> None and optname:
-		value = string.strip(line)
-		if value:
-		    cursect = cursect[optname] + '\n ' + value
-	    # a section header?
-	    elif secthead_cre.match(line) >= 0:
-		sectname = secthead_cre.group(1)
-		if self.__sections.has_key(sectname):
-		    cursect = self.__sections[sectname]
-		elif sectname == DEFAULTSECT:
-		    cursect = self.__defaults
-		else:
-		    cursect = {'name': sectname}
-		    self.__sections[sectname] = cursect
-		# So sections can't start with a continuation line.
-		optname = None
-	    # an option line?
-	    elif option_cre.match(line) >= 0:
-		optname, optval = option_cre.group(1, 3)
-		optname = string.lower(optname)
-		optval = string.strip(optval)
-		# allow empty values
-		if optval == '""':
-		    optval = ''
-		cursect[optname] = optval
-	    # an error
-	    else:
-		print 'Error in %s at %d: %s', (fp.name, lineno, `line`)
+        The sections in setup file contains a title line at the top,
+        indicated by a name in square brackets (`[]'), plus key/value
+        options lines, indicated by `name: value' format lines.
+        Continuation are represented by an embedded newline then
+        leading whitespace.  Blank lines, lines beginning with a '#',
+        and just about everything else is ignored.
+        """
+        cursect = None                  # None, or a dictionary
+        optname = None
+        lineno = 0
+        while 1:
+            line = fp.readline()
+            if not line:
+                break
+            lineno = lineno + 1
+            # comment or blank line?
+            if string.strip(line) == '' or line[0] in '#;':
+                continue
+            if string.lower(string.split(line)[0]) == 'rem' \
+               and line[0] == "r":      # no leading whitespace
+                continue
+            # continuation line?
+            if line[0] in ' \t' and cursect <> None and optname:
+                value = string.strip(line)
+                if value:
+                    cursect = cursect[optname] + '\n ' + value
+            # a section header?
+            elif secthead_cre.match(line) >= 0:
+                sectname = secthead_cre.group(1)
+                if self.__sections.has_key(sectname):
+                    cursect = self.__sections[sectname]
+                elif sectname == DEFAULTSECT:
+                    cursect = self.__defaults
+                else:
+                    cursect = {'name': sectname}
+                    self.__sections[sectname] = cursect
+                # So sections can't start with a continuation line.
+                optname = None
+            # an option line?
+            elif option_cre.match(line) >= 0:
+                optname, optval = option_cre.group(1, 3)
+                optname = string.lower(optname)
+                optval = string.strip(optval)
+                # allow empty values
+                if optval == '""':
+                    optval = ''
+                cursect[optname] = optval
+            # an error
+            else:
+                print 'Error in %s at %d: %s', (fp.name, lineno, `line`)