util_make_href_and_mailto_links_and_convert_to_html

one of the documented procedures in this installation of the ACS
Usage:
util_make_href_and_mailto_links_and_convert_to_html   text
What it does:
util_make_href_and_mailto_links interferes badly with util_convert_to_html. That's why I had to write a special procedure that does both things correctly. See those two procs for details.
Defined in: /web/philip/packages/acs-core/utilities-procs.tcl

Source code:



       set text " $text"
       # if something is " http://" or " https://"
       # we assume it is a link to an outside source. 

       # (bd) The only purpose of thiese sTaRtUrL and
       # eNdUrL markers is to get rid of trailing dots,
       # commas and things like that.  Note that there
       # is a TAB before and after each marker.

       regsub -nocase -all {([^a-zA-Z0-9]+)(http://[^\(\)"<>
	 ]+)} $text {\1	sTaRtUrL\2eNdUrL	} text
       regsub -nocase -all {([^a-zA-Z0-9]+)(https://[^\(\)"<>
	 ]+)} $text {\1	sTaRtUrL\2eNdUrL	} text
       regsub -nocase -all {([^a-zA-Z0-9]+)(ftp://[^\(\)"<>
	 ]+)} $text {\1	sTaRtUrL\2eNdUrL	} text
   
       # email links have the form xxx@xxx.xxx
       regsub -nocase -all {([^a-zA-Z0-9]+)([^\(\)
	 :;,@<>]+@[^\(\)
	 .:;,@<>]+[.][^\(\)
	 :;,@<>]+)} $text {\1	sTaRtEmAiL\2eNdEmAiL	} text
       # At this point, before inserting some of our own <, >, and "'s
       # we quote the ones entered by the user:
       set text [util_quotehtml $text]
       # turn CRLFCRLF into <P>
	if { [regsub -all "\015\012\015\012" $text "<p>" text] == 0 } {
	    # try LFLF
	    if { [regsub -all "\012\012" $text "<p><p>" text] == 0 } {
		# try CRCR
		regsub -all "\015\015" $text "<p><p>" text
	    }
	}
	# turn CRLF into <BR>
        if { [regsub -all "\015\012" $text "<br>" text] == 0 } {
            # try LF
            if { [regsub -all "\012" $text "<br>" text] == 0 } {
                # try CR
                regsub -all "\015" $text "<br>" text
            }
        }
       # Dress the links and emails with A HREF
       regsub -all {([]!?.:;,<>\(\)\}-]+)(eNdUrL	)} $text {\2\1} text
       regsub -all {([]!?.:;,<>\(\)\}-]+)(eNdEmAiL	)} $text {\2\1} text
       regsub -all {	sTaRtUrL([^	]*)eNdUrL	} $text {<a href="\1">\1</a>} text
       regsub -all {	sTaRtEmAiL([^	]*)eNdEmAiL	} $text {<a href="mailto:\1">\1</a>} text
    return [string trimleft $text]


philg@mit.edu