Now uses varargs syntax to grep more than one file.
diff --git a/Lib/lib-old/grep.py b/Lib/lib-old/grep.py
index 21ef8d8..019d916 100644
--- a/Lib/lib-old/grep.py
+++ b/Lib/lib-old/grep.py
@@ -4,41 +4,59 @@
 from regex_syntax import *
 import string
 
-def grep(pat, filename):
-	return ggrep(RE_SYNTAX_GREP, pat, filename)
+opt_show_where = 0
+opt_show_filename = 0
+opt_show_lineno = 1
 
-def egrep(pat, filename):
-	return ggrep(RE_SYNTAX_EGREP, pat, filename)
+def grep(pat, +files):
+	return ggrep(RE_SYNTAX_GREP, pat, files)
 
-def emgrep(pat, filename):
-	return ggrep(RE_SYNTAX_EMACS, pat, filename)
+def egrep(pat, +files):
+	return ggrep(RE_SYNTAX_EGREP, pat, files)
 
-def ggrep(syntax, pat, filename):
+def emgrep(pat, +files):
+	return ggrep(RE_SYNTAX_EMACS, pat, files)
+
+def ggrep(syntax, pat, files):
+	if len(files) == 1 and type(files[0]) == type([]):
+		files = files[0]
+	global opt_show_filename
+	opt_show_filename = (len(files) != 1)
 	syntax = regex.set_syntax(syntax)
 	try:
 		prog = regex.compile(pat)
 	finally:
 		syntax = regex.set_syntax(syntax)
-	fp = open(filename, 'r')
-	lineno = 0
-	while 1:
-		line = fp.readline()
-		if not line: break
-		lineno = lineno + 1
-		if prog.search(line) >= 0:
-			if line[-1:] == '\n': line = line[:-1]
-			prefix = string.rjust(`lineno`, 3) + ': '
-			print prefix + line
-			if 0: # XXX
-				start, end = prog.regs[0]
-				line = line[:start]
-				if '\t' not in line:
-					prefix = ' ' * (len(prefix) + start)
-				else:
-					prefix = ' ' * len(prefix)
-					for c in line:
-						if c <> '\t': c = ' '
-						prefix = prefix + c
-				if start == end: prefix = prefix + '\\'
-				else: prefix = prefix + '^'*(end-start)
-				print prefix
+	for filename in files:
+		fp = open(filename, 'r')
+		lineno = 0
+		while 1:
+			line = fp.readline()
+			if not line: break
+			lineno = lineno + 1
+			if prog.search(line) >= 0:
+				showline(filename, lineno, line, prog)
+		fp.close()
+
+def showline(filename, lineno, line, prog):
+	if line[-1:] == '\n': line = line[:-1]
+	if opt_show_lineno:
+		prefix = string.rjust(`lineno`, 3) + ': '
+	else:
+		prefix = ''
+	if opt_show_filename:
+		prefix = filename + ': ' + prefix
+	print prefix + line
+	if opt_show_where:
+		start, end = prog.regs()[0]
+		line = line[:start]
+		if '\t' not in line:
+			prefix = ' ' * (len(prefix) + start)
+		else:
+			prefix = ' ' * len(prefix)
+			for c in line:
+				if c <> '\t': c = ' '
+				prefix = prefix + c
+		if start == end: prefix = prefix + '\\'
+		else: prefix = prefix + '^'*(end-start)
+		print prefix