static void WritePageSource (StringBuilder builder, HtmlizedException e)
{
string s;
int line = 0;
int beginerror = e.ErrorLines [0];
int enderror = e.ErrorLines [1];
int begin = beginerror - 2;
int end = enderror + 2;
if (begin <= 0)
begin = 1;
TextReader reader = new StringReader (e.FileText);
while ((s = reader.ReadLine ()) != null) {
line++;
if (line < begin)
continue;
if (line > end)
break;
if (beginerror == line)
builder.Append ("<span class=\"sourceErrorLine\">");
builder.AppendFormat ("{0}: {1}\r\n", line, HtmlEncode (s));
if (enderror <= line) {
builder.Append ("</span>");
enderror = end + 1; // one shot
}
}
}