Fixed issue #439: headers are now correctly detected, even when using @@...@@ tags.

This commit is contained in:
Dario Solera 2010-02-02 09:55:00 +00:00
parent a777650e1f
commit 5fee035fbe
3 changed files with 15 additions and 2 deletions

View file

@ -386,6 +386,9 @@ namespace ScrewTurn.Wiki {
return buffer.ToString().Trim('-');
}
// This regex is duplicated from Formatter.cs
private static readonly Regex FullCodeRegex = new Regex(@"@@.+?@@", RegexOptions.Compiled | RegexOptions.Singleline);
/// <summary>
/// Finds the start and end positions of a section of the content.
/// </summary>
@ -395,6 +398,15 @@ namespace ScrewTurn.Wiki {
/// <param name="len">The length of the section.</param>
/// <param name="anchor">The anchor ID of the section.</param>
private static void ExtractSection(string content, int section, out int start, out int len, out string anchor) {
// HACK: @@...@@ escapes headers: must reproduce behavior here
Match m = FullCodeRegex.Match(content);
while(m.Success) {
string newContent = m.Value.Replace("=", "$"); // Do not alter positions
content = content.Remove(m.Index, m.Length);
content = content.Insert(m.Index, newContent);
m = FullCodeRegex.Match(content, m.Index + m.Length - 1);
}
List<HPosition> hPos = Formatter.DetectHeaders(content);
start = 0;
len = content.Length;