add expandtabs command (-e)
change eliminate to delete (-d)
diff --git a/Tools/scripts/pindent.py b/Tools/scripts/pindent.py
index 1c27b13..6eba021 100755
--- a/Tools/scripts/pindent.py
+++ b/Tools/scripts/pindent.py
@@ -4,7 +4,7 @@
 # related (though complimentary) formatting operations on Python
 # programs.  When called as "pindent -c", it takes a valid Python
 # program as input and outputs a version augmented with block-closing
-# comments.  When called as "pindent -e", it assumes its input is a
+# comments.  When called as "pindent -d", it assumes its input is a
 # Python program with block-closing comments and outputs a commentless
 # version.   When called as "pindent -r" it assumes its input is a
 # Python program with block-closing comments but with its indentation
@@ -46,6 +46,7 @@
 # Other options:
 # -s stepsize: set the indentation step size (default 8)
 # -t tabsize : set the number of spaces a tab character is worth (default 8)
+# -e         : expand TABs into spaces
 # file ...   : input file(s) (default standard input)
 # The results always go to standard output
 
@@ -78,6 +79,7 @@
 # Defaults
 STEPSIZE = 8
 TABSIZE = 8
+EXPANDTABS = 0
 
 import os
 import re
@@ -96,13 +98,14 @@
 class PythonIndenter:
 
 	def __init__(self, fpi = sys.stdin, fpo = sys.stdout,
-		     indentsize = STEPSIZE, tabsize = TABSIZE):
+		     indentsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 		self.fpi = fpi
 		self.fpo = fpo
 		self.indentsize = indentsize
 		self.tabsize = tabsize
 		self.lineno = 0
-		self.write = fpo.write
+		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*))?'
@@ -114,6 +117,14 @@
 		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 readline(self):
 		line = self.fpi.readline()
 		if line: self.lineno = self.lineno + 1
@@ -196,7 +207,7 @@
 		# end if
 	# end def reformat
 
-	def eliminate(self):
+	def delete(self):
 		begin_counter = 0
 		end_counter = 0
 		while 1:
@@ -222,7 +233,7 @@
 		elif begin_counter - end_counter > 0:
 			sys.stderr.write('Warning: input contained less end tags than expected\n')
 		# end if
-	# end def eliminate
+	# end def delete
 	
 	def complete(self):
 		self.indentsize = 1
@@ -325,20 +336,20 @@
 # - xxx_file(filename): process file in place, return true iff changed
 
 def complete_filter(input = sys.stdin, output = sys.stdout,
-		    stepsize = STEPSIZE, tabsize = TABSIZE):
-	pi = PythonIndenter(input, output, stepsize, tabsize)
+		    stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
+	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
 	pi.complete()
 # end def complete_filter
 
-def eliminate_filter(input= sys.stdin, output = sys.stdout,
-	stepsize = STEPSIZE, tabsize = TABSIZE):
-	pi = PythonIndenter(input, output, stepsize, tabsize)
-	pi.eliminate()
-# end def eliminate_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()
+# end def delete_filter
 
 def reformat_filter(input = sys.stdin, output = sys.stdout,
-		    stepsize = STEPSIZE, tabsize = TABSIZE):
-	pi = PythonIndenter(input, output, stepsize, tabsize)
+		    stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
+	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
 	pi.reformat()
 # end def reformat_filter
 
@@ -386,33 +397,33 @@
 	# end def getvalue
 # end class StringWriter
 
-def complete_string(source, stepsize = STEPSIZE, tabsize = TABSIZE):
+def complete_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	input = StringReader(source)
 	output = StringWriter()
-	pi = PythonIndenter(input, output, stepsize, tabsize)
+	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
 	pi.complete()
 	return output.getvalue()
 # end def complete_string
 
-def eliminate_string(source, stepsize = STEPSIZE, tabsize = TABSIZE):
+def delete_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	input = StringReader(source)
 	output = StringWriter()
-	pi = PythonIndenter(input, output, stepsize, tabsize)
-	pi.eliminate()
+	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
+	pi.delete()
 	return output.getvalue()
-# end def eliminate_string
+# end def delete_string
 
-def reformat_string(source, stepsize = STEPSIZE, tabsize = TABSIZE):
+def reformat_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	input = StringReader(source)
 	output = StringWriter()
-	pi = PythonIndenter(input, output, stepsize, tabsize)
+	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
 	pi.reformat()
 	return output.getvalue()
 # end def reformat_string
 
-def complete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE):
+def complete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	source = open(filename, 'r').read()
-	result = complete_string(source, stepsize, tabsize)
+	result = complete_string(source, stepsize, tabsize, expandtabs)
 	if source == result: return 0
 	# end if
 	import os
@@ -425,9 +436,9 @@
 	return 1
 # end def complete_file
 
-def eliminate_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE):
+def delete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	source = open(filename, 'r').read()
-	result = eliminate_string(source, stepsize, tabsize)
+	result = delete_string(source, stepsize, tabsize, expandtabs)
 	if source == result: return 0
 	# end if
 	import os
@@ -438,11 +449,11 @@
 	f.write(result)
 	f.close()
 	return 1
-# end def eliminate_file
+# end def delete_file
 
-def reformat_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE):
+def reformat_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	source = open(filename, 'r').read()
-	result = reformat_string(source, stepsize, tabsize)
+	result = reformat_string(source, stepsize, tabsize, expandtabs)
 	if source == result: return 0
 	# end if
 	import os
@@ -458,21 +469,28 @@
 # Test program when called as a script
 
 usage = """
-usage: pindent (-c|-e|-r) [-s stepsize] [-t tabsize] [file] ...
+usage: pindent (-c|-d|-r) [-s stepsize] [-t tabsize] [-e] [file] ...
 -c         : complete a correctly indented program (add #end directives)
--e         : eliminate #end directives
+-d         : delete #end directives
 -r         : reformat a completed program (use #end directives)
 -s stepsize: indentation step (default %(STEPSIZE)d)
 -t tabsize : the worth in spaces of a tab (default %(TABSIZE)d)
+-e         : expand TABs into spaces (defailt OFF)
 [file] ... : files are changed in place, with backups in file~
 If no files are specified or a single - is given,
 the program acts as a filter (reads stdin, writes stdout).
 """ % 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)
+# end def error_both
+
 def test():
 	import getopt
 	try:
-		opts, args = getopt.getopt(sys.argv[1:], 'cers:t:')
+		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)
@@ -481,32 +499,41 @@
 	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 == '-e':
-			action = 'eliminate'
+		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), -e(eliminate) or -r(eformat)\n')
+			'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)
+		action(sys.stdin, sys.stdout, stepsize, tabsize, expandtabs)
 	else:
 		action = eval(action + '_file')
 		for file in args:
-			action(file, stepsize, tabsize)
+			action(file, stepsize, tabsize, expandtabs)
 		# end for
 	# end if
 # end def test