Whitespace normalization.
diff --git a/Tools/scripts/pindent.py b/Tools/scripts/pindent.py
index 6eba021..318c20e 100755
--- a/Tools/scripts/pindent.py
+++ b/Tools/scripts/pindent.py
@@ -97,236 +97,236 @@
 
 class PythonIndenter:
 
-	def __init__(self, fpi = sys.stdin, fpo = sys.stdout,
-		     indentsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-		self.fpi = fpi
-		self.fpo = fpo
-		self.indentsize = indentsize
-		self.tabsize = tabsize
-		self.lineno = 0
-		self.expandtabs = expandtabs
-		self._write = fpo.write
-		self.kwprog = re.compile(
-			r'^\s*(?P<kw>[a-z]+)'
-			r'(\s+(?P<id>[a-zA-Z_]\w*))?'
-			r'[^\w]')
-		self.endprog = re.compile(
-			r'^\s*#?\s*end\s+(?P<kw>[a-z]+)'
-			r'(\s+(?P<id>[a-zA-Z_]\w*))?'
-			r'[^\w]')
-		self.wsprog = re.compile(r'^[ \t]*')
-	# end def __init__
+    def __init__(self, fpi = sys.stdin, fpo = sys.stdout,
+                 indentsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
+        self.fpi = fpi
+        self.fpo = fpo
+        self.indentsize = indentsize
+        self.tabsize = tabsize
+        self.lineno = 0
+        self.expandtabs = expandtabs
+        self._write = fpo.write
+        self.kwprog = re.compile(
+                r'^\s*(?P<kw>[a-z]+)'
+                r'(\s+(?P<id>[a-zA-Z_]\w*))?'
+                r'[^\w]')
+        self.endprog = re.compile(
+                r'^\s*#?\s*end\s+(?P<kw>[a-z]+)'
+                r'(\s+(?P<id>[a-zA-Z_]\w*))?'
+                r'[^\w]')
+        self.wsprog = re.compile(r'^[ \t]*')
+    # end def __init__
 
-	def write(self, line):
-		if self.expandtabs:
-			self._write(string.expandtabs(line, self.tabsize))
-		else:
-			self._write(line)
-		# end if
-	# end def write
+    def write(self, line):
+        if self.expandtabs:
+            self._write(string.expandtabs(line, self.tabsize))
+        else:
+            self._write(line)
+        # end if
+    # end def write
 
-	def readline(self):
-		line = self.fpi.readline()
-		if line: self.lineno = self.lineno + 1
-		# end if
-		return line
-	# end def readline
+    def readline(self):
+        line = self.fpi.readline()
+        if line: self.lineno = self.lineno + 1
+        # end if
+        return line
+    # end def readline
 
-	def error(self, fmt, *args):
-		if args: fmt = fmt % args
-		# end if
-		sys.stderr.write('Error at line %d: %s\n' % (self.lineno, fmt))
-		self.write('### %s ###\n' % fmt)
-	# end def error
+    def error(self, fmt, *args):
+        if args: fmt = fmt % args
+        # end if
+        sys.stderr.write('Error at line %d: %s\n' % (self.lineno, fmt))
+        self.write('### %s ###\n' % fmt)
+    # end def error
 
-	def getline(self):
-		line = self.readline()
-		while line[-2:] == '\\\n':
-			line2 = self.readline()
-			if not line2: break
-			# end if
-			line = line + line2
-		# end while
-		return line
-	# end def getline
+    def getline(self):
+        line = self.readline()
+        while line[-2:] == '\\\n':
+            line2 = self.readline()
+            if not line2: break
+            # end if
+            line = line + line2
+        # end while
+        return line
+    # end def getline
 
-	def putline(self, line, indent = None):
-		if indent is None:
-			self.write(line)
-			return
-		# end if
-		tabs, spaces = divmod(indent*self.indentsize, self.tabsize)
-		i = 0
-		m = self.wsprog.match(line)
-		if m: i = m.end()
-		# end if
-		self.write('\t'*tabs + ' '*spaces + line[i:])
-	# end def putline
+    def putline(self, line, indent = None):
+        if indent is None:
+            self.write(line)
+            return
+        # end if
+        tabs, spaces = divmod(indent*self.indentsize, self.tabsize)
+        i = 0
+        m = self.wsprog.match(line)
+        if m: i = m.end()
+        # end if
+        self.write('\t'*tabs + ' '*spaces + line[i:])
+    # end def putline
 
-	def reformat(self):
-		stack = []
-		while 1:
-			line = self.getline()
-			if not line: break	# EOF
-			# end if
-			m = self.endprog.match(line)
-			if m:
-				kw = 'end'
-				kw2 = m.group('kw')
-				if not stack:
-					self.error('unexpected end')
-				elif stack[-1][0] != kw2:
-					self.error('unmatched end')
-				# end if
-				del stack[-1:]
-				self.putline(line, len(stack))
-				continue
-			# end if
-			m = self.kwprog.match(line)
-			if m:
-				kw = m.group('kw')
-				if kw in start:
-					self.putline(line, len(stack))
-					stack.append((kw, kw))
-					continue
-				# end if
-				if next.has_key(kw) and stack:
-					self.putline(line, len(stack)-1)
-					kwa, kwb = stack[-1]
-					stack[-1] = kwa, kw
-					continue
-				# end if
-			# end if
-			self.putline(line, len(stack))
-		# end while
-		if stack:
-			self.error('unterminated keywords')
-			for kwa, kwb in stack:
-				self.write('\t%s\n' % kwa)
-			# end for
-		# end if
-	# end def reformat
+    def reformat(self):
+        stack = []
+        while 1:
+            line = self.getline()
+            if not line: break      # EOF
+            # end if
+            m = self.endprog.match(line)
+            if m:
+                kw = 'end'
+                kw2 = m.group('kw')
+                if not stack:
+                    self.error('unexpected end')
+                elif stack[-1][0] != kw2:
+                    self.error('unmatched end')
+                # end if
+                del stack[-1:]
+                self.putline(line, len(stack))
+                continue
+            # end if
+            m = self.kwprog.match(line)
+            if m:
+                kw = m.group('kw')
+                if kw in start:
+                    self.putline(line, len(stack))
+                    stack.append((kw, kw))
+                    continue
+                # end if
+                if next.has_key(kw) and stack:
+                    self.putline(line, len(stack)-1)
+                    kwa, kwb = stack[-1]
+                    stack[-1] = kwa, kw
+                    continue
+                # end if
+            # end if
+            self.putline(line, len(stack))
+        # end while
+        if stack:
+            self.error('unterminated keywords')
+            for kwa, kwb in stack:
+                self.write('\t%s\n' % kwa)
+            # end for
+        # end if
+    # end def reformat
 
-	def delete(self):
-		begin_counter = 0
-		end_counter = 0
-		while 1:
-			line = self.getline()
-			if not line: break	# EOF
-			# end if
-			m = self.endprog.match(line)
-			if m:
-				end_counter = end_counter + 1
-				continue
-			# end if
-			m = self.kwprog.match(line)
-			if m:
-				kw = m.group('kw')
-				if kw in start:
-					begin_counter = begin_counter + 1
-				# end if
-			# end if
-			self.putline(line)
-		# end while
-		if begin_counter - end_counter < 0:
-			sys.stderr.write('Warning: input contained more end tags than expected\n')
-		elif begin_counter - end_counter > 0:
-			sys.stderr.write('Warning: input contained less end tags than expected\n')
-		# end if
-	# end def delete
-	
-	def complete(self):
-		self.indentsize = 1
-		stack = []
-		todo = []
-		current, firstkw, lastkw, topid = 0, '', '', ''
-		while 1:
-			line = self.getline()
-			i = 0
-			m = self.wsprog.match(line)
-			if m: i = m.end()
-			# end if
-			m = self.endprog.match(line)
-			if m:
-				thiskw = 'end'
-				endkw = m.group('kw')
-				thisid = m.group('id')
-			else:
-				m = self.kwprog.match(line)
-				if m:
-					thiskw = m.group('kw')
-					if not next.has_key(thiskw):
-						thiskw = ''
-					# end if
-					if thiskw in ('def', 'class'):
-						thisid = m.group('id')
-					else:
-						thisid = ''
-					# end if
-				elif line[i:i+1] in ('\n', '#'):
-					todo.append(line)
-					continue
-				else:
-					thiskw = ''
-				# end if
-			# end if
-			indent = len(string.expandtabs(line[:i], self.tabsize))
-			while indent < current:
-				if firstkw:
-					if topid:
-						s = '# end %s %s\n' % (
-							firstkw, topid)
-					else:
-						s = '# end %s\n' % firstkw
-					# end if
-					self.putline(s, current)
-					firstkw = lastkw = ''
-				# end if
-				current, firstkw, lastkw, topid = stack[-1]
-				del stack[-1]
-			# end while
-			if indent == current and firstkw:
-				if thiskw == 'end':
-					if endkw != firstkw:
-						self.error('mismatched end')
-					# end if
-					firstkw = lastkw = ''
-				elif not thiskw or thiskw in start:
-					if topid:
-						s = '# end %s %s\n' % (
-							firstkw, topid)
-					else:
-						s = '# end %s\n' % firstkw
-					# end if
-					self.putline(s, current)
-					firstkw = lastkw = topid = ''
-				# end if
-			# end if
-			if indent > current:
-				stack.append((current, firstkw, lastkw, topid))
-				if thiskw and thiskw not in start:
-					# error
-					thiskw = ''
-				# end if
-				current, firstkw, lastkw, topid = \
-					 indent, thiskw, thiskw, thisid
-			# end if
-			if thiskw:
-				if thiskw in start:
-					firstkw = lastkw = thiskw
-					topid = thisid
-				else:
-					lastkw = thiskw
-				# end if
-			# end if
-			for l in todo: self.write(l)
-			# end for
-			todo = []
-			if not line: break
-			# end if
-			self.write(line)
-		# end while
-	# end def complete
+    def delete(self):
+        begin_counter = 0
+        end_counter = 0
+        while 1:
+            line = self.getline()
+            if not line: break      # EOF
+            # end if
+            m = self.endprog.match(line)
+            if m:
+                end_counter = end_counter + 1
+                continue
+            # end if
+            m = self.kwprog.match(line)
+            if m:
+                kw = m.group('kw')
+                if kw in start:
+                    begin_counter = begin_counter + 1
+                # end if
+            # end if
+            self.putline(line)
+        # end while
+        if begin_counter - end_counter < 0:
+            sys.stderr.write('Warning: input contained more end tags than expected\n')
+        elif begin_counter - end_counter > 0:
+            sys.stderr.write('Warning: input contained less end tags than expected\n')
+        # end if
+    # end def delete
+
+    def complete(self):
+        self.indentsize = 1
+        stack = []
+        todo = []
+        current, firstkw, lastkw, topid = 0, '', '', ''
+        while 1:
+            line = self.getline()
+            i = 0
+            m = self.wsprog.match(line)
+            if m: i = m.end()
+            # end if
+            m = self.endprog.match(line)
+            if m:
+                thiskw = 'end'
+                endkw = m.group('kw')
+                thisid = m.group('id')
+            else:
+                m = self.kwprog.match(line)
+                if m:
+                    thiskw = m.group('kw')
+                    if not next.has_key(thiskw):
+                        thiskw = ''
+                    # end if
+                    if thiskw in ('def', 'class'):
+                        thisid = m.group('id')
+                    else:
+                        thisid = ''
+                    # end if
+                elif line[i:i+1] in ('\n', '#'):
+                    todo.append(line)
+                    continue
+                else:
+                    thiskw = ''
+                # end if
+            # end if
+            indent = len(string.expandtabs(line[:i], self.tabsize))
+            while indent < current:
+                if firstkw:
+                    if topid:
+                        s = '# end %s %s\n' % (
+                                firstkw, topid)
+                    else:
+                        s = '# end %s\n' % firstkw
+                    # end if
+                    self.putline(s, current)
+                    firstkw = lastkw = ''
+                # end if
+                current, firstkw, lastkw, topid = stack[-1]
+                del stack[-1]
+            # end while
+            if indent == current and firstkw:
+                if thiskw == 'end':
+                    if endkw != firstkw:
+                        self.error('mismatched end')
+                    # end if
+                    firstkw = lastkw = ''
+                elif not thiskw or thiskw in start:
+                    if topid:
+                        s = '# end %s %s\n' % (
+                                firstkw, topid)
+                    else:
+                        s = '# end %s\n' % firstkw
+                    # end if
+                    self.putline(s, current)
+                    firstkw = lastkw = topid = ''
+                # end if
+            # end if
+            if indent > current:
+                stack.append((current, firstkw, lastkw, topid))
+                if thiskw and thiskw not in start:
+                    # error
+                    thiskw = ''
+                # end if
+                current, firstkw, lastkw, topid = \
+                         indent, thiskw, thiskw, thisid
+            # end if
+            if thiskw:
+                if thiskw in start:
+                    firstkw = lastkw = thiskw
+                    topid = thisid
+                else:
+                    lastkw = thiskw
+                # end if
+            # end if
+            for l in todo: self.write(l)
+            # end for
+            todo = []
+            if not line: break
+            # end if
+            self.write(line)
+        # end while
+    # end def complete
 
 # end class PythonIndenter
 
@@ -336,134 +336,134 @@
 # - xxx_file(filename): process file in place, return true iff changed
 
 def complete_filter(input = sys.stdin, output = sys.stdout,
-		    stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
-	pi.complete()
+                    stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
+    pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
+    pi.complete()
 # end def complete_filter
 
 def delete_filter(input= sys.stdin, output = sys.stdout,
-		    	stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
-	pi.delete()
+                        stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
+    pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
+    pi.delete()
 # end def delete_filter
 
 def reformat_filter(input = sys.stdin, output = sys.stdout,
-		    stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
-	pi.reformat()
+                    stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
+    pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
+    pi.reformat()
 # end def reformat_filter
 
 class StringReader:
-	def __init__(self, buf):
-		self.buf = buf
-		self.pos = 0
-		self.len = len(self.buf)
-	# end def __init__
-	def read(self, n = 0):
-		if n <= 0:
-			n = self.len - self.pos
-		else:
-			n = min(n, self.len - self.pos)
-		# end if
-		r = self.buf[self.pos : self.pos + n]
-		self.pos = self.pos + n
-		return r
-	# end def read
-	def readline(self):
-		i = string.find(self.buf, '\n', self.pos)
-		return self.read(i + 1 - self.pos)
-	# end def readline
-	def readlines(self):
-		lines = []
-		line = self.readline()
-		while line:
-			lines.append(line)
-			line = self.readline()
-		# end while
-		return lines
-	# end def readlines
-	# seek/tell etc. are left as an exercise for the reader
+    def __init__(self, buf):
+        self.buf = buf
+        self.pos = 0
+        self.len = len(self.buf)
+    # end def __init__
+    def read(self, n = 0):
+        if n <= 0:
+            n = self.len - self.pos
+        else:
+            n = min(n, self.len - self.pos)
+        # end if
+        r = self.buf[self.pos : self.pos + n]
+        self.pos = self.pos + n
+        return r
+    # end def read
+    def readline(self):
+        i = string.find(self.buf, '\n', self.pos)
+        return self.read(i + 1 - self.pos)
+    # end def readline
+    def readlines(self):
+        lines = []
+        line = self.readline()
+        while line:
+            lines.append(line)
+            line = self.readline()
+        # end while
+        return lines
+    # end def readlines
+    # seek/tell etc. are left as an exercise for the reader
 # end class StringReader
 
 class StringWriter:
-	def __init__(self):
-		self.buf = ''
-	# end def __init__
-	def write(self, s):
-		self.buf = self.buf + s
-	# end def write
-	def getvalue(self):
-		return self.buf
-	# end def getvalue
+    def __init__(self):
+        self.buf = ''
+    # end def __init__
+    def write(self, s):
+        self.buf = self.buf + s
+    # end def write
+    def getvalue(self):
+        return self.buf
+    # end def getvalue
 # end class StringWriter
 
 def complete_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-	input = StringReader(source)
-	output = StringWriter()
-	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
-	pi.complete()
-	return output.getvalue()
+    input = StringReader(source)
+    output = StringWriter()
+    pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
+    pi.complete()
+    return output.getvalue()
 # end def complete_string
 
 def delete_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-	input = StringReader(source)
-	output = StringWriter()
-	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
-	pi.delete()
-	return output.getvalue()
+    input = StringReader(source)
+    output = StringWriter()
+    pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
+    pi.delete()
+    return output.getvalue()
 # end def delete_string
 
 def reformat_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-	input = StringReader(source)
-	output = StringWriter()
-	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
-	pi.reformat()
-	return output.getvalue()
+    input = StringReader(source)
+    output = StringWriter()
+    pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
+    pi.reformat()
+    return output.getvalue()
 # end def reformat_string
 
 def complete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-	source = open(filename, 'r').read()
-	result = complete_string(source, stepsize, tabsize, expandtabs)
-	if source == result: return 0
-	# end if
-	import os
-	try: os.rename(filename, filename + '~')
-	except os.error: pass
-	# end try
-	f = open(filename, 'w')
-	f.write(result)
-	f.close()
-	return 1
+    source = open(filename, 'r').read()
+    result = complete_string(source, stepsize, tabsize, expandtabs)
+    if source == result: return 0
+    # end if
+    import os
+    try: os.rename(filename, filename + '~')
+    except os.error: pass
+    # end try
+    f = open(filename, 'w')
+    f.write(result)
+    f.close()
+    return 1
 # end def complete_file
 
 def delete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-	source = open(filename, 'r').read()
-	result = delete_string(source, stepsize, tabsize, expandtabs)
-	if source == result: return 0
-	# end if
-	import os
-	try: os.rename(filename, filename + '~')
-	except os.error: pass
-	# end try
-	f = open(filename, 'w')
-	f.write(result)
-	f.close()
-	return 1
+    source = open(filename, 'r').read()
+    result = delete_string(source, stepsize, tabsize, expandtabs)
+    if source == result: return 0
+    # end if
+    import os
+    try: os.rename(filename, filename + '~')
+    except os.error: pass
+    # end try
+    f = open(filename, 'w')
+    f.write(result)
+    f.close()
+    return 1
 # end def delete_file
 
 def reformat_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
-	source = open(filename, 'r').read()
-	result = reformat_string(source, stepsize, tabsize, expandtabs)
-	if source == result: return 0
-	# end if
-	import os
-	try: os.rename(filename, filename + '~')
-	except os.error: pass
-	# end try
-	f = open(filename, 'w')
-	f.write(result)
-	f.close()
-	return 1
+    source = open(filename, 'r').read()
+    result = reformat_string(source, stepsize, tabsize, expandtabs)
+    if source == result: return 0
+    # end if
+    import os
+    try: os.rename(filename, filename + '~')
+    except os.error: pass
+    # end try
+    f = open(filename, 'w')
+    f.write(result)
+    f.close()
+    return 1
 # end def reformat_file
 
 # Test program when called as a script
@@ -482,62 +482,62 @@
 """ % vars()
 
 def error_both(op1, op2):
-	sys.stderr.write('Error: You can not specify both '+op1+' and -'+op2[0]+' at the same time\n')
-	sys.stderr.write(usage)
-	sys.exit(2)
+    sys.stderr.write('Error: You can not specify both '+op1+' and -'+op2[0]+' at the same time\n')
+    sys.stderr.write(usage)
+    sys.exit(2)
 # end def error_both
 
 def test():
-	import getopt
-	try:
-		opts, args = getopt.getopt(sys.argv[1:], 'cdrs:t:e')
-	except getopt.error, msg:
-		sys.stderr.write('Error: %s\n' % msg)
-		sys.stderr.write(usage)
-		sys.exit(2)
-	# end try
-	action = None
-	stepsize = STEPSIZE
-	tabsize = TABSIZE
-	expandtabs = EXPANDTABS
-	for o, a in opts:
-		if o == '-c':
-			if action: error_both(o, action)
-			# end if
-			action = 'complete'
-		elif o == '-d':
-			if action: error_both(o, action)
-			# end if
-			action = 'delete'
-		elif o == '-r':
-			if action: error_both(o, action)
-			# end if
-			action = 'reformat'
-		elif o == '-s':
-			stepsize = string.atoi(a)
-		elif o == '-t':
-			tabsize = string.atoi(a)
-		elif o == '-e':
-			expandtabs = 1
-		# end if
-	# end for
-	if not action:
-		sys.stderr.write(
-			'You must specify -c(omplete), -d(elete) or -r(eformat)\n')
-		sys.stderr.write(usage)
-		sys.exit(2)
-	# end if
-	if not args or args == ['-']:
-		action = eval(action + '_filter')
-		action(sys.stdin, sys.stdout, stepsize, tabsize, expandtabs)
-	else:
-		action = eval(action + '_file')
-		for file in args:
-			action(file, stepsize, tabsize, expandtabs)
-		# end for
-	# end if
+    import getopt
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], 'cdrs:t:e')
+    except getopt.error, msg:
+        sys.stderr.write('Error: %s\n' % msg)
+        sys.stderr.write(usage)
+        sys.exit(2)
+    # end try
+    action = None
+    stepsize = STEPSIZE
+    tabsize = TABSIZE
+    expandtabs = EXPANDTABS
+    for o, a in opts:
+        if o == '-c':
+            if action: error_both(o, action)
+            # end if
+            action = 'complete'
+        elif o == '-d':
+            if action: error_both(o, action)
+            # end if
+            action = 'delete'
+        elif o == '-r':
+            if action: error_both(o, action)
+            # end if
+            action = 'reformat'
+        elif o == '-s':
+            stepsize = string.atoi(a)
+        elif o == '-t':
+            tabsize = string.atoi(a)
+        elif o == '-e':
+            expandtabs = 1
+        # end if
+    # end for
+    if not action:
+        sys.stderr.write(
+                'You must specify -c(omplete), -d(elete) or -r(eformat)\n')
+        sys.stderr.write(usage)
+        sys.exit(2)
+    # end if
+    if not args or args == ['-']:
+        action = eval(action + '_filter')
+        action(sys.stdin, sys.stdout, stepsize, tabsize, expandtabs)
+    else:
+        action = eval(action + '_file')
+        for file in args:
+            action(file, stepsize, tabsize, expandtabs)
+        # end for
+    # end if
 # end def test
 
 if __name__ == '__main__':
-	test()
+    test()
 # end if