[Dnfbb-commits] SF.net SVN: dnfbb: [671] v2/DNFLib/Email/EmailMessage.cs
Brought to you by:
sbosanquet,
tectsoft
From: <sbo...@us...> - 2007-01-25 17:39:57
|
Revision: 671 http://svn.sourceforge.net/dnfbb/?rev=671&view=rev Author: sbosanquet Date: 2007-01-25 09:39:49 -0800 (Thu, 25 Jan 2007) Log Message: ----------- Fixed a small bug with the regex not converting a link to html when it ended in a speech mark Modified Paths: -------------- v2/DNFLib/Email/EmailMessage.cs Modified: v2/DNFLib/Email/EmailMessage.cs =================================================================== --- v2/DNFLib/Email/EmailMessage.cs 2007-01-25 17:21:44 UTC (rev 670) +++ v2/DNFLib/Email/EmailMessage.cs 2007-01-25 17:39:49 UTC (rev 671) @@ -584,48 +584,47 @@ /// <returns>Message with links converted</returns> public static string ConvertPlainTextLinkToHTML(string Message, string Link) { - string convertedMessage = Message; - - // Set Regular Expression string - StringBuilder regexSearch = new StringBuilder(@"\b"); - regexSearch.Append(Link); - regexSearch.Append(@"?[\w\d\.\/\:\?\=\&]+[^\<^\s^\)^\x22]?\b"); - - Regex regexObj = new Regex(regexSearch.ToString(), RegexOptions.IgnoreCase); - - - //Check to see if there is a match in the message - if (regexObj.IsMatch(Message)) - { - // Initialise Variables - string replacementLink = string.Empty; - convertedMessage = string.Empty; - int position = 0; - - // Loop through the matches - foreach (Match match in regexObj.Matches(Message)) - { - // Copy part of message into converted message - convertedMessage += Message.Substring(position, match.Index - position); - - // Create replacement link and attach it to the message - replacementLink = @"<A href=" + match.ToString() + " target=\"_blank\">" + match.ToString() + "</A>"; - convertedMessage += replacementLink; // Insert new link - - // Set position - position = match.Index + match.Length; - } - - // Copy remaining part of message into converted message - if (position < Message.Length) - convertedMessage += Message.Substring(position); - - regexObj = null; + string convertedMessage = Message; + + // Set Regular Expression string + StringBuilder regexSearch = new StringBuilder(@"\b"); + regexSearch.Append(Link); + regexSearch.Append(@"?[\w\d\.\/\:\?\=\&]+[^\<^\s^\)^""]?\b"); + + Regex regexObj = new Regex(regexSearch.ToString(), RegexOptions.IgnoreCase); + + //Check to see if there is a match in the message + if (regexObj.IsMatch(Message)) + { + // Initialise Variables + string replacementLink = string.Empty; + convertedMessage = string.Empty; + int position = 0; + + // Loop through the matches + foreach (Match match in regexObj.Matches(Message)) + { + // Copy part of message into converted message + convertedMessage += Message.Substring(position, match.Index - position); + + // Create replacement link and attach it to the message + replacementLink = @"<A href=" + match.ToString() + " target=\"_blank\">" + match.ToString() + "</A>"; + convertedMessage += replacementLink; // Insert new link + + // Set position + position = match.Index + match.Length; + } + + // Copy remaining part of message into converted message + if (position < Message.Length) + convertedMessage += Message.Substring(position); + + regexObj = null; + } + + return convertedMessage; } - return convertedMessage; - } - #endregion } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |