Added code to recognize http/ftp URLs and email addresses, and add <A>
tags for them.
diff --git a/Tools/faqwiz/faqmain.py b/Tools/faqwiz/faqmain.py
index 6e00acf..d105d2c 100644
--- a/Tools/faqwiz/faqmain.py
+++ b/Tools/faqwiz/faqmain.py
@@ -9,8 +9,6 @@
 - next/prev/index links in do_show?
 - should have files containing section headers
 - customize rcs command pathnames
-- recognize urls and email addresses and turn them into <A> tags
-- use cookies to keep Name/email the same
 - explanation of editing somewhere
 - various embellishments, GIFs, crosslinks, hints, etc.
 - create new sections
@@ -582,7 +580,7 @@
 		else:
 		    print '<P>'
 	    else:
-		if line == string.lstrip(line):	# I.e., no leading whitespace
+		if line[0] not in string.whitespace:
 		    if pre:
 			print '</PRE>'
 			pre = 0
@@ -590,7 +588,7 @@
 		    if not pre:
 			print '<PRE>'
 			pre = 1
-		print cgi.escape(line)
+		print self.translate(line)
 	if pre:
 	    print '</PRE>'
 	    pre = 0
@@ -658,6 +656,38 @@
 	</HTML>
 	'''
 
+    translate_prog = None
+
+    def translate(self, text):
+	if not self.translate_prog:
+	    import regex
+	    url = '\(http\|ftp\)://[^ \t\r\n]*'
+	    email = '\<[-a-zA-Z0-9._]+@[-a-zA-Z0-9._]+'
+	    self.translate_prog = prog = regex.compile(url + "\|" + email)
+	else:
+	    prog = self.translate_prog
+	i = 0
+	list = []
+	while 1:
+	    j = prog.search(text, i)
+	    if j < 0:
+		break
+	    list.append(cgi.escape(text[i:j]))
+	    i = j
+	    url = prog.group(0)
+	    while url[-1] in ");:,.?":
+		url = url[:-1]
+	    url = cgi.escape(url)
+	    if ':' in url:
+		repl = '<A HREF="%s">%s</A>' % (url, url)
+	    else:
+		repl = '<A HREF="mailto:%s">&lt;%s&gt;</A>' % (url, url)
+	    list.append(repl)
+	    i = i + len(url)
+	j = len(text)
+	list.append(cgi.escape(text[i:j]))
+	return string.join(list, '')
+
 print "Content-type: text/html"
 dt = 0
 try: